Shell if 条件判断 您所在的位置:网站首页 在shell Shell if 条件判断

Shell if 条件判断

#Shell if 条件判断| 来源: 网络整理| 查看: 265

Shell  语言中的if条件

一、if的基本语法:

if [ command ];then    符合该条件执行的语句 elif [ command ];then    符合该条件执行的语句 else    符合该条件执行的语句 fi

二、文件/文件夹(目录)判断

[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d DIR ] 如果 FILE 存在且是一个目录则为真。 [ -e FILE ] 如果 FILE 存在则为真。 [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。 [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。 [ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真。 [ -p FILE ] 如果 FILE 存在且是一个名字管道(F如果O)则为真。 [ -r FILE ] 如果 FILE 存在且是可读的则为真。 [ -s FILE ] 如果 FILE 存在且大小不为0则为真。 [ -t FD ] 如果文件描述符 FD 打开且指向一个终端则为真。 [ -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。 [ -w FILE ] 如果 FILE存在且是可写的则为真。 [ -x FILE ] 如果 FILE 存在且是可执行的则为真。 [ -O FILE ] 如果 FILE 存在且属有效用户ID则为真。 [ -G FILE ] 如果 FILE 存在且属有效用户组则为真。 [ -L FILE ] 如果 FILE 存在且是一个符号连接则为真。 [ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read则为真。 [ -S FILE ] 如果 FILE 存在且是一个套接字则为真。 [ FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2, or 如果 FILE1 exists and FILE2 does not则为真。 [ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。 [ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。

三、字符串判断

[ -z STRING ] 如果STRING的长度为零则为真 ,即判断是否为空,空即是真; [ -n STRING ] 如果STRING的长度非零则为真 ,即判断是否为非空,非空即是真; [ STRING1 = STRING2 ] 如果两个字符串相同则为真 ; [ STRING1 != STRING2 ] 如果字符串不相同则为真 ; [ STRING1 ]  如果字符串不为空则为真,与-n类似

四、数值判断

INT1 -eq INT2           INT1和INT2两数相等为真 ,= INT1 -ne INT2           INT1和INT2两数不等为真 , INT1 -gt INT2            INT1大于INT1为真 ,> INT1 -ge INT2           INT1大于等于INT2为真,>= INT1 -lt INT2             INT1小于INT2为真 ,、>=、= "$b"))

字符串比较

=       等于,如:if [ "$a" = "$b" ] ==       等于,如:if [ "$a" == "$b" ],与=等价        注意:==的功能在[[]]和[]中的行为是不同的,如下:        1 [[ $a == z* ]]    # 如果$a以"z"开头(模式匹配)那么将为true        2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true        3        4 [ $a == z* ]      # File globbing 和word splitting将会发生        5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true        一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是.        但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像. !=       不等于,如:if [ "$a" != "$b" ]        这个操作符将在[[]]结构中使用模式匹配.        大于,在ASCII字母顺序下.如:        if [[ "$a" > "$b" ]]        if [ "$a" \> "$b" ]        注意:在[]结构中">"需要被转义.        具体参考Example 26-11来查看这个操作符应用的例子. -z       字符串为"null".就是长度为0. -n       字符串不为"null"        注意:        使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z        或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可        以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.

文章出处:http://www.cnblogs.com/aaron-agu/ 只有毅力和决心才能使人真正具有价值! ————————————————

原文链接:https://blog.csdn.net/zhan570556752/article/details/80399154



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有