程序中流程控制是由比较语句和测试语句处理的
算数比较
[ $var -gt 20 ]
[ $var -gt 20 -a $var -lt 50 ] #使用逻辑与
[ $var -ne 20 -o $var -ne 50 ] #使用逻辑或
- -eq: 等于 equal
- -lt: 小于 less than
- -gt: 大于 greater then
- -ge: 大于或等于 greater equal
- -le: 小于或等于 less equal
- -ne : 不等于
字符串比较
使用字符串比较时,最好使用”[[ ]]”,采用单中括号时容易产生错误,如下图所示:
aaarticlea/png;base64,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” alt=”” />
要么就加上字符串都加上双引号
aaarticlea/png;base64,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” alt=”” />
[[ $str1 = $str2 ]] #str1和str2包含的文本是一模一样的
[[ $str1 != $str2 ]] #str1和str2包含的文本是不一样的
[[ -z $str ]] #str为空,则返回真。
[[ -n $str ]] #str有值,not empty
注意[[]]不能够使用-a或者-o,而应该使用:
[[ $var1 = hello && $var2 = world ]
文件系统相关测试
[ -f filename ]
[ ! -f filename ] #不存在文件
使用逻辑运算符&&和||能够很容易的将多个条件组合起来:
[[ -n $str1 ]] && [[ -z $str2 ]]
[ -f file_name ] || { touch file_name;chmod 644 file_name;} #大括号里面接要执行的命令