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

9.3 shell脚本基础2

2013-09-29 19:44 357 查看
shell脚本基础2 一条件测试语句
・专门的测试工具test
test命令
测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值
格式1:test 条件表达式
格式2:[ 条件表达式 ]
echo $?:命令用来检测上一条命令是否成功,返回值为0,表示成功,非0,表示异常;例


shell脚本基础2" />
・文件测试
格式:[ 操作符 文件或目录 ]或test 操作符 文件或目录
常用的测试操作符
-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)
例如
分两次执行文件测试


shell脚本基础2" />
使用逻辑"且",只需一条命令即可测试


shell脚本基础2" />
或者提示输出别的提示(逻辑且:当第一条命令正常执行才会执行第二条命令,否则无显示)


shell脚本基础2" />
・整数值比较
格式:[ 整数1 操作符 整数2 ]
常用的测试操作符
-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)
例如
测试当前用户数是否大于2


shell脚本基础2" />
测试内存容量是否小于1024M


shell脚本基础2" />
・字符串比较
格式1:[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2:[ -z 字符串 ]
常用的测试操作符
=:字符串内容相同
!=:字符串内容不同,! 号表示相反的意思
-z:字符串内容为空
例如:
检测当前系统语言是什么;是否英语


shell脚本基础2" />
交互式方法让用户选择


shell脚本基础2" />
・逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...
常用的测试操作符
-a或&&:逻辑与,"而且"的意思;
-o或||:逻辑或,"或者"的意思
!:逻辑否
例如
测试linux内核版本是否大于2.4


shell脚本基础2" />
测试当前进程数是否大于100


shell脚本基础2" />
二 if条件语句
如果……那么……
・单分支结构:如果条件成立,则执行then命令序列,然后结束;不成立则立即结束
格式:
if 条件测试操作
then 命令序列
fi
例如
如果磁盘空间大于10%,则报警


shell脚本基础2" />
・双分支结构:如果条件成立,则执行then命令序列,然后结束;不成立则执行else命令序列,然后结束
例如
检查80端口是否在监听,如果监听,则提示;如果没有监听,则开启服务


shell脚本基础2" />

shell脚本基础2" />
・多分支结构:如果第一个条件成立,则执行then命令序列,然后结束;不成立则判断第二个条件是否成立,成立则执行then命令序列,然后结束;不成立则执行else命令序列;然后结束
格式
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
  命令序列3
fi
例如
判断学生成绩的等级(while用法见下一章节)


shell脚本基础2" />
本文出自 “天元大话” 博客,请务必保留此出处http://itit0.blog.51cto.com/5766649/1334744
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: