shell脚本语言中的选择执行
概述
程序执行过程分为顺序执行、选择执行和循环执行。
顺序执行是指程序按照步骤一步一步地运行。
选择执行是指程序根据特定条件选择两项或者多项中的一项运行。
循环执行是指程序根据特定条件重复执行直到某个节点结束,继续运行其他步骤。
本篇文章从判断条件和条件判断式简要说明shell脚本语言中程序选择执行的用法。
shell脚本中的判断条件
test的测试功能
文件存在及类型测试 test [OPTION] FILE
-e 该文件名是否存在 -f 该文件名是否存在且为普通文件 -d 该文件名是否存在且为目录 -b 该文件名是否存在且为块设备文件 -c 该文件名是否存在且为字符设备文件 -S 该文件名是否存在且为Socket文件 -p 该文件名是否存在且为管道文件 -l 该文件名是否存在且为连接文件
文件权限测试 test [OPTION] FILE
-r 该文件名是否存在且具有可读属性 -w 该文件名是否存在且具有可写属性 -x 该文件名是否存在且具有可执行属性 -u 该文件名是否存在且具有“SUID”属性 -g 该文件名是否存在且具有“SGID”属性 -k 该文件名是否存在且具有“STICKY”属性 -s 该文件名是否存在且文件为非空白文档
文件之间比较 test FILE1 [OPTION] FILE2
-nt 判断前文件是否比后文件新 -ot 判断前文件是否比后文件旧 -ef 判断两个文件是否指向一个inode
整数之间的比较 test INT1 [OPTION] INT2
-eq 两数值相等 -ne 两数值不等 -gt 前数大于后数 -lt 前数小于后数 -ge 前数大于等于后数 -le 前数小于等于后数
字符串测试
test -z STRING 判断字符串是否为空,为空则为ture test -n STRING 判断字符串是否为空,为空则为false //-n可省略 test STR1 = STR2 判断前后字符串是否相同,相同为ture test STR1 != STR2 判断前后字符串是否相同,相同为false
逻辑链接
-a 与关系 -o 或关系 ! 非关系
判断符号[]
判断符号用法等同于test,但是要注意:
中括号内每个组件都要有空格键分隔
中括号内的变量要用双引号括起来
中括号内的常量要用单引号或者双引号括起来
条件判断式
- if..then
if [条件判断式] then 条件成立时执行指令 fi
if [条件判断式1] then
条件1成立时执行指令 else[条件判断式2] then
条件1失败时条件2成功时执行指令 else 条件1条件2失败时执行指令
fi
- case..esac
case $变量名称 in "变量1")
变量名称的值为变量1时执行指令
;; "变量2")
变量名称的值为变量2时执行指令
;;
*)
变量名称的值不为变量1且不为变量2时执行指令
exit1
;;
shell脚本语言中的判断执行就是将判断条件和条件判断式合理地结合使用。
原创文章,作者:easyTang,如若转载,请注明出处:http://www.178linux.com/73592
评论列表(1条)
主要介绍了shell中的判断符,和测试符,内容总结的很详细,排版也很好,建议把之前学过的尽可能的总结进来,加油,加油!