if条件:
if condition;
then
commands
elif condition;
then
commands
else
commands
fi
if和else语句可以嵌套。
简化if条件:
[ condition ] && action; #如果condition为真,执行action
[ condition ] || action ; #如果 condition 为假,执行action
算数比较:
[ $var -eq 0] or [ $var -eq 0] #注意 或 与操作数之间有空格键
或者:
[ $var1 -eq 0 -a $var2 -gt 2] #使用逻辑与-a
[ $var1 -eq 0 -o $var2 -gt 2] #使用逻辑或-o
文件系统相关测试:
我们可以使用不同的条件标志测试不同的文件属性;
1.[ -f $filename ] #如果给定变量包含正常的路径或文件名,就返回真
2.[ -x $var ] #是否可执行
3.[ -d $var ] #是否包含目录
4.[ -e $var ] #文件是否存在
5.[ -c $var ] #是否是一个字符设备的路径
6.[-b $var ]#是否是一个块设备的路径
7.[-w $var ] #包含的文件是否可写
8.[-r $var ] #包含的文件是否可读
9.[ -L $var ]#是否是一个链接符号
字符串比较:
字符串比较最好双中括号。
1.[[ $str1 = $str2 ]] #检查是否相等
2.[[ $str1 == $str2 ]] #检查是否相等
3.[[ $str1 != $str2 ]]#检查是否不相等
4.[[ $str1 < $sr2 ]] #检查是否小于
5.[[ $str1 > $str2 ]] # 检查是否大于
6.[[ -z $str1 ]] #检查是否是空字符串
7.[[ -n $str1 ]] #检查是否是非空字符串
注意:1中等号两面必须有空格,否则就是赋值语句了。
另外:
使用 && 和 || 能够将多个条件链接起来
例如:
if [[ -n $str1]] && [[ -z $str2 ]] ;
then
commands
fi