3.3 shell控制流结构

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

如下所示:

猜你喜欢

转载自www.cnblogs.com/wanmeishenghuo/p/9382788.html
3.3