条件判断
条件判断类型
- 整数测试
https://www.jianshu.com/p/fd9c7ad121ee - 字符测试
https://www.jianshu.com/p/1b14443c4d2c - 文件测试
https://www.jianshu.com/p/0a4cf0d9eb0f
条件测试表达式
[ expression ]——中括号与expression之间必须有空格
[[ expression ]]——中括号与expression之间必须有空格
test expression
命令间逻辑关系
- 逻辑与:&&
①第一个条件为假时,第二条件不用再判断,最终结果已经为0。
②第一个条件为真时,第二个条件需要继续进行判断。 - 逻辑或:||
①第一个条件为假时,第二个条件需要继续进行判断。
②第一个条件为真时,第二条件不用再判断,最终结果已经为1。 - 逻辑非:!
①使用!时,符号!后必须空一格
整数比较(整数测试)
符号 | 含义 | 例子 |
---|---|---|
-eq | 测试两个整数是否相等 | [ $A -eq $B ] |
-ne | 测试两个整数是否不等 | [ $A -ne $B ] |
-gt | 测试一个数是否大于另一个数 | [ $A -gt $B ] |
-lt | 测试一个数是否小于另一个数 | [ $A -lt $B ] |
-ge | 大于或等于 | [ $A -ge $B ] |
-le | 小于或等于 | [ $A -le $B ] |
- 注意:[]与内容前后各有一个空格
if语句
①单分支if语句
if 判断语句;then
statement1
statement2
fi
②双分支if语句
if 判断条件;then
statement1
statement2
else
statement3
statement4
fi
③多分支的if语句
if 判断条件1;then
statement1
···
elif 判断条件2;then
statement2
···
elif 判断条件3;then
statement3
···
else
statement4
···
fi
算术运算
- let 算术运算表达式
例如:let c=$A+$B
注意
①let A+=C;A=A+C(-=,/=,%=,*=) - $[算术运算表达式]
例如:c=$[$A+$B] - $((算术运算表达式))
例如:c=$(($A+$B)) - expr 算术运算表达式
注意:
①表达式中各操作数及运算符之间要有空格
②expr及后面的算术运算表达式要使用命令引用
例如:C=`expr $A + $B`(C=$(expr $A + $B)) - 使用bc做精确运算
echo "scale=2;111/22" | bc//精度为小数点之后两位
bc<<<"scale=2;111/22"
组合测试条件
选型 | 作用 | 用法 | 等同于 |
---|---|---|---|
-a | 与关系 | [ $# -gt 1 -a $# -ls 3] | [ $# -gt 1] && [ $# -lt 3 ] |
-o | 或关系 | [ $# -gt 1 -o $# -ls 3 | [ $# -gt 1] || [ $# -lt 3 ] |
! | 非关系 | [ ! (条件) ] |