shell中的控制流包括if then else语句,case语句,for循环,until循环,while循环,break控制,continue控制。
条件测试:
有时判断字符串是否相等或检查文件状态或是数字测试等,Test命令用于测试字符串、文件状态和数字。
文件状态测试:
在Linux下敲入命令,效果如下:
test -w tmp.txt和[ -w tmp.txt ]的作用是一样的。
也可以测试两个表达式,例如:[ EXPRESSION1 -a EXPRESSION2 ] 或者test EXPRESSION1 -a EXPRESSION2
示例程序如下:
1 #!/bin/bash 2 3 [ -d test ] 4 5 if [ $? -eq "0" ];then 6 echo "file is exist"; 7 else 8 echo "file not exist"; 9 fi
执行结果如下:
字符串测试:
测试两个字符串是否相等,如下所示:
测试相等时, = 两边要有空格,给变量赋值时,=号两边不能有空格。
数值测试:
示例如下:
数字运算:
运算符测试如下:
要想执行正确的运算,加号两边要有空格。
if then else语句:
if 条件
then 命令
fi
示例:
if [ "13" -lt "12" ]
then echo "yes 13 is less than 12"
else
echo "NO"
fi
1 if [ "13" -lt "12" ] 2 3 then echo "yes 13 is less than 12" 4 else 5 echo "NO" 6 fi
1 if [ "13" -lt "12" ];then 2 echo "yes 13 is less than 12" 3 else 4 echo "NO" 5 fi
执行结果如下:
if else then也可以写成下面的语法:
if 条件1
then
命令1
elif 条件2
then
命令2
else
命令3
fi
如下所示: