编写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