您的位置:首页 > 运维架构 > Shell

编写Shell管理脚本

2011-01-19 14:37 411 查看
编写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

fi

③,多分支

if 条件测试命令1 ; then

命令序列1

elif 条件测试命令2 ; then

命令序列2

elif ...

else

命令序列n

fi

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

1,语法

for 变量名 in 取值列表

do

命令序列

done

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

1,语法

while 命令或表达式

do

命令列表

done

四、其他控制语句

1,case多分支

case 变量值 in

模式1)

命令序列1

;;

模式2)

命令序列2

;;

  ……

* )

默认执行的命令序列

esac

2,until循环语句

until 条件测试命令

do

命令序列

done

3,shift迁移语句

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

4,break语句

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

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

五、Shell函数应用

1,语法

function 函数名 {

  命令序列

}

或者

函数名() {

  命令序列

}

2,调用函数

函数名

3,向函数内传递参数

函数名 参数1 参数2 ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息