shell脚本之流程控制语句

时间:2022-08-15 21:40:04

一、分支控制语句

1、if .. fi条件

if condition; then

action

fi

2、if .. else .. fi条件

if condition;then

action;

else

action

fi

3、if .. else if ..else ..fi条件

if condition;then

action;

else if condition;then

action;

else

action;

fi

注意:if和slse语句可以进行嵌套,if条件判断可能因此变得很长,可以使用逻辑运算符使他变得简洁一点:

[ condition ] && action; #如果condition条件为真,则执行action;

[ condition ] || action; #如果condition条件为假,则执行action;

二、循环控制语句

1、for循环

for var in list;

do

action;

done

其中list可以是一个字符串、序列或数组等。

采用c语言方式的for循环语句:

for((i=0;i<10;i++))

{

action

}

for((i=0;i<10;i++));

do

action

done

2、while循环

while condition

do

action

done

3、until循环语法

until condition

do

action

done

二、逻辑运算符和逻辑表达式

1、常用逻辑运算符如下:

l &&(或者 -a):逻辑与

l ||(或者 -o):逻辑或

2、逻辑表达式

1)算术比较:条件一般被放在[]内,切记中括号前后需要留有空格。

常用的算术操作符:

l -eq:等于

l -ne:不等于

l -gt:大于

l -lt:小于

l -ge:大于等于

l -le:小于等于

2)文件系统运行符:条件比较一般被放在[]内,切记中括号前后需要留有空格。

l [ -f $file_var ]:给定变量包含正常的文件或文件名,返回真。

l [ -x $var ]:给定的文件包含可执行权限,返回真。

l [ -d $var ]: 给定的变量包含的是目录,返回真。

l [ -e $var ]: 给定的变量包含的文件存在,返回真。

l [ -c $var ]: 给定的变量包含一个字符设备路径,返回真。

l [ -b $var ]: 给定的变量是一个块设备文件路径,返回真。

l [ -w $var ]: 给定的文件包含可写权限,返回真。

l [ -r $var ]: 给定的文件包含可读权限,返回真。

l [ -L $var ]: 给定的文件包含一个符号链接,返回真。

3)字符串比较:条件比较一般被放在双[]内,切记中括号前后需要留有空格。

-z:字符串是空字符串,返回真。

-n:字符串是非空字符串,返回真。

4)test命令用来执行条件判断,test命令可以避免过多的[]。

例如:

if [ $var -eq 0];then

echo "true"

fi

可以写成:

if test $var -eq 0;then

echo "true"

fi