天天看点

编写Shell管理脚本

编写Shell管理脚本(二)

一、if语句

1,条件测试

test  测试表达式是否成立,成立结果为0

①,测试文件状态

 -d 是否为目录

 -e 目录或文件是否存在

 -f 是否为文件

 -r 当前用户是否有权限读取

 -w 当前用户是否有权限写入

 -x 当前用户是否可执行该文件

 -L 是否为符号连接文件

②,数值比较

 -eq 等于

 -ne 不等于

 -gt 大于

 -lt 小于

 -le 小于或等于

 -ge 大于或等于

Equal   等于

Not Equal  不等于

Greater Than 大于

Lesser Than 小于

Lesser or Equal 小于或等于

Greater or Equal大于或等于

③,字符串比较

  = 内容相同

 != 内容不同,! 号表示相反的意思

 -z 内容为空

④,条件判断

-a或&& 逻辑与

 前后表达式都成立时整个测试结果才为真,否则为假 

-o或|| 逻辑或

 操作符两边至少一个为真时,结果为真,否则结果为假

! 逻辑否

 当指定的条件不成立时,返回结果为真

2,if语句格式

①,单分支

if  条件测试命令 

    then   命令序列

fi

②,双分支

if  条件测试命令

    then   命令序列1

    else   命令序列2

③,多分支

if  条件测试命令1  ;  then

    命令序列1

elif  条件测试命令2  ;  then

    命令序列2

elif  ...

else

    命令序列n

二、for语句(根据变量的不同取值,重复执行一组命令操作)

1,语法

for  变量名  in  取值列表

do

     命令序列

done 

三、while语句(重复测试指定的条件,只要条件成立则反复执行对应的命令操作)

 while  命令或表达式

 do

            命令列表

 done

四、其他控制语句

1,case多分支

case  变量值  in

    模式1)

           命令序列1

           ;;

    模式2)

          命令序列2

  ……

    * )

          默认执行的命令序列

esac

2,until循环语句

until  条件测试命令

      命令序列

done

3,shift迁移语句

迁移位置变量,将 $1~$9 依次向左传递

4,break语句

在for、while、until等循环语句中,用于跳出当前所在的循环体,执行循环体后的语5,continue

在for、while、until等循环语句中,用于跳过循环体内余下的语句,重新判断条件以便执行下一次循环句

五、Shell函数应用

function 函数名 {

  命令序列

或者

函数名() {

}

2,调用函数

函数名

3,向函数内传递参数

函数名  参数1  参数2  ...

本文转自 houzaicunsky 51CTO博客,原文链接:http://blog.51cto.com/hzcsky/481610