当前位置:   article > 正文

Shell脚本语言常用命令总结~_shell 命令语言

shell 命令语言

一、Shell概述

Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。
在这里插入图片描述

优点:Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。

二、Shell脚本

  1. 脚本格式

脚本以 #!/bin/bash 开头(指定解析器)

  1. 第一个Shell脚本:HelloWorld

需求:创建一个Shell脚本,输出helloworld

1). 使用以下命令创建一个datas文件夹,存放脚本:

[xiaobai@hadoop100 ~]$ mkdir datas
  • 1

2). 使用以下命令创建helloworld.sh脚本

[xiaobai@hadoop100 datas]$ touch helloworld.sh
  • 1

3). 使用以下命令编辑helloworld.sh脚本:

[xiaobai@hadoop100 datas]$ vim helloworld.sh 
  • 1

4). 输入以下内容:

#!/bin/bash

echo "hello world"
  • 1
  • 2
  • 3

在这里插入图片描述

5). 脚本执行方式:

方式1⃣️. 采用bash或sh+脚本的相对路径/绝对路径(不用赋予脚本+x权限)

sh+脚本的相对路径:

[xiaobai@hadoop100 datas]$ sh helloworld.sh 
hello world
  • 1
  • 2

sh+脚本的绝对路径:

[xiaobai@hadoop100 datas]$ sh /home/xiaobai/datas/helloworld.sh 
hello world
  • 1
  • 2

bash+脚本的相对路径:

[xiaobai@hadoop100 datas]$ bash helloworld.sh 
hello world
  • 1
  • 2

bash+脚本的绝对路径:

[xiaobai@hadoop100 datas]$ bash /home/xiaobai/datas/helloworld.sh 
hello world
  • 1
  • 2

方式2⃣️. 采用输入脚本的绝对路径/相对路径执行脚本(必须具有可执行权限+x

a. 首先赋予helloworld.sh 脚本的+x权限:

[xiaobai@hadoop100 datas]$ chmod 777 helloworld.sh 
  • 1

在这里插入图片描述

b. 执行脚本:

相对路径执行脚本:

[xiaobai@hadoop100 datas]$ ./helloworld.sh
hello world
  • 1
  • 2

绝对路径执行脚本:

[xiaobai@hadoop100 datas]$ /home/xiaobai/datas/helloworld.sh 
hello world
  • 1
  • 2

tips:
方式1⃣️ ,本质是解析器帮助执行脚本,所以脚本本身不需哟啊执行权限;方式2⃣️ ,本质是脚本需要自己执行,所以需要➕x权限。

  1. 第二个shell脚本:多命令处理

需求:
在/home/xiaobai/目录下创建一个welcome.txt, 新增内容“Welcome to China!”

1). 使用以下命令创建一个batch.sh脚本:

[xiaobai@hadoop100 datas]$ touch batch.sh
[xiaobai@hadoop100 datas]$ vi batch.sh 
  • 1
  • 2

2). 如图,在batch.sh脚本添加以下内容:

#!/bin/bash

cd /home/xiaobai/
touch welcome.txt
echo "Welcome to China" >> welcome.txt
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

3). 运行batch.sh脚本:

[xiaobai@hadoop100 datas]$ bash batch.sh
  • 1

4). 查看脚本运行结果:
请添加图片描述

三、Shell中的变量

3.1 系统变量

  1. 常用系统变量
$HOME$PWD$SHELL$USER等;
  • 1
  1. 案例

查看系统变量的值:

[xiaobai@hadoop100 ~]$ echo $HOME
/home/xiaobai
[xiaobai@hadoop100 ~]$ 
[xiaobai@hadoop100 ~]$ echo $PWD
/home/xiaobai
[xiaobai@hadoop100 ~]$ echo $SHELL
/bin/bash
[xiaobai@hadoop100 ~]$ echo $USER
xiaobai
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.2 自定义变量

  1. 基本语法

1). 定义变量:变量=值

[xiaobai@hadoop100 ~]$ a=1
[xiaobai@hadoop100 ~]$ echo $a
1
  • 1
  • 2
  • 3

2). 撤销变量:unset 变量

[xiaobai@hadoop100 ~]$ unset a
[xiaobai@hadoop100 ~]$ echo $a

[xiaobai@hadoop100 ~]$ 
  • 1
  • 2
  • 3
  • 4

3). 声明静态变量:readonly 变量,
tips:只读 不可以使用unset

[xiaobai@hadoop100 ~]$ readonly b=2
[xiaobai@hadoop100 ~]$ echo $b
2
[xiaobai@hadoop100 ~]$ unset b
-bash: unset: b: cannot unset: readonly variable
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 变量定义规则

1). 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名最好大写!

2). 等号两侧❌有空格;

3). 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算;

[xiaobai@hadoop100 ~]$ c=1+2
[xiaobai@hadoop100 ~]$ echo $c
1+2
  • 1
  • 2
  • 3

4). 变量的值如果有空格,需要使用双引号 " " / ’ ’ 括起来。

[xiaobai@hadoop100 ~]$ d="i love China"
[xiaobai@hadoop100 ~]$ echo $d
i love China
  • 1
  • 2
  • 3

tips:
使用“ export 变量名 ” 可以将变量提升为全局环境变量,供其他Shell程序使用。

eg:
如图,在helloworld.sh 中增加 echo $d:

在这里插入图片描述
如果不将 d 提升为全局变量,helloworld.sh 并不会打印出 d 的值:

[xiaobai@hadoop100 datas]$ vi helloworld.sh 
[xiaobai@hadoop100 datas]$ echo $d
i love China
[xiaobai@hadoop100 datas]$ ./helloworld.sh 
hello world
  • 1
  • 2
  • 3
  • 4
  • 5

使用 “ export d ” 将d提升为全局变量,重新打印helloworld.sh :

[xiaobai@hadoop100 datas]$ export d
[xiaobai@hadoop100 datas]$ ./helloworld.sh 
hello world
i love China
  • 1
  • 2
  • 3
  • 4

3.3 特殊变量:$n

  1. 基本语法

$n (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】

推荐阅读
相关标签