四、运算符 $[]
、$(())
$[]
、$(())
用于数值计算,避免歧义,所以括起来进行计算。
#!/bin/bash
s1=$[(1+3)*5]
s2=$((5+3))
echo '(1+3)*5 =' $s1
echo '5+3 =' $s2
sum=$[$1+$2]
echo '$1+$2=' $sum
#执行
./com.sh 12 13
#输出
(1+3)*5 = 20
5+3 = 8
$1+$2= 25
五、条件判断
5.1判断数值大小
判断符号 | 含义 |
---|---|
-eq | 等于 |
-ne | 不等于 |
-lt | 小于 |
-le | 小于等于 |
-gt | 大于 |
-ge | 大于等于 |
基础案例
test 4 -gt 3
echo $?
#输出 0表示true,1表示false
0
test 4 -lt 3
echo $?
#输出 0表示true,1表示false
1
#等价于上面,但是注意括号前后需要有空格
[ 4 -gt 3 ]
echo $?
#输出 0表示true,1表示false
0
5.2 判断文件权限、文件类型
判断文件权限
判断权限符号 | 文件权限 |
---|---|
-r | 有读的权限 |
-w | 有写的权限 |
-x | 有执行的权限 |
判断文件类型
判断类型符号 | 文件类型 |
---|---|
-e | 文件存在 |
-f | 文件存在且是一个常规文件 |
-d | 文件存在且是一个目录 |
多条件判断
使用 &&
进行短路与操作,如果第一个条件为false,直接返回false。
使用 ||
进行短路或操作,如果第一个条件为true,直接返回true。
#判断shell脚本是否为文件夹
[ -d com.sh ]
echo $?
#输出1 false
1
#可以利用多条件判断,构成一个类似 ?: 的三元运算
[ -f com.sh ] && echo true || echo false
#输出
true