传递参数
脚本内获取参数格式为:$n,n代表数字,默认$0表示执行的文件名,1为第一个参数,以此类推
echo "执行的文件名:$0";
echo "第一个参数为:$1";
执行时直接向后一次输入即可
$ chmod +x test.sh
$ ./test.sh 1 2 3
参数 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 展示所有传递的参数,“123”1个参数 |
$@ | “@”等价于“1”,“2”,“3”三个参数 |
$$ | 脚本运行的进程ID |
$? | 显示最后命令的退出状态 |
基本运算符
算数运算符
bash不支持简单的数学运算,因此使用awk或expr,expr最常用,可进行加减乘除取模运算,但是乘法*前需要添加转义符\,$a \* $b
val=`expr 2 + 2`
echo "两数之和为 : $val"
此处注意
1.使用的是反引号`,而不是单引号‘
2.表达式和运算符中必须要有空格
条件表达式要在中括号中,并且添加空格
[ $a != $b ]
关系运算符
只支持对数字的关系运算
运算符 | 说明 | 举例 |
---|---|---|
-eq | 检测是否相等 | $a -eq $b |
-ne | 检测是否不等 | $a -ne $b |
-gt | 左大于右 | $a -gt $b |
-lt | 左小于右 | $a -lt $b |
-ge | 左大于等于右 | $a -ge $b |
-le | 左小于等于右 | $a -le $b |
布尔运算符
运算符 | 说明 | 举例 |
---|---|---|
! | 非运算 | ! false |
-o | 或运算 | $a -lt 20 -o $b -gt 100 |
-a | 与运算 | $a -lt 20 -a $b -gt 100 |
逻辑运算符
运算符 | 说明 | 举例 |
---|---|---|
&& | 逻辑 and | $a -lt 100 && $b -gt 100 |
|| | 逻辑or | $a -lt 100 || $b -gt 100 |
字符串运算符
运算符 | 说明 | 举例 |
---|---|---|
= | 检查两个字符串相等 | $a = $b |
!= | 两个字符串不等 | $a != $b |
-z | 长度是否为0 | -z $a |
-n | 长度不为0 | -n $a |
$ | 检查是否为空 | $a |
文件测试运算符
运算符 | 说明 | 举例 |
---|---|---|
-b | 检查文件是否是块文件 | -b $file |
-c | 字符设备文件 | |
-d | 目录文件 | |
-f | 普通文件 | |
-r | 是否可读 | -r $file |
-w | 是否可写 | |
-x | 是否可执行 | |
-s | 是否为空 | |
-e | 是否存在 | -e $file |