• shell中的条件判断if和测试


    (一)条件判断 if 中-z 到 -d 的意思

      [ -a file ] 若file存在,则为真。

      [ -b file ] 若file存在且是一个特殊文件,则为真。

      [ -c file ] 若file存在且是一个特殊文件,则为真。

      [ -d file ] 若file存在且是一个目录,则为真。

      [ -e file ] 若file存在,则为真。

      [ -f file ] 若file存在且是一个普通文件,则为真。

      [ -g file ] 若file存在且已经设置了SGID,则为真。

      [ -h file ] 若file存在且是一个符号连接,则为真。

      [ -k file ] 若file存在且已经设置了粘制位,则为真。

      [ -p file ] 若file存在且是一个管道,则为真。

      [ -r file ] 若file存在且是可读的,则为真。

      [ -s file ] 若file存在且大小不为0,则为真。

      [ -t FD ] 若文件描述符FD打开且指向一个终端,则为真。

      [ -u file ] 若file存在且设置了SUID,则为真。

      [ -w file ] 若file存在且是可写的,则为真。

      [ -x file ] 若file存在且是可执行的,则为真。

      [ -O file ] 若file存在且是有效用户ID,则为真。

      [ -G file ] 若file存在且是有效用户组,则为真。

      [ -L file ] 若file存在且是一个符号连接,则为真。

      [ -S file ] 若file存在且是一个套接字,则为真。

    (二)条件测试

      使用 “test” 或 “[ ]” 命令

      if test -f file.c 

      then ...

      fi 

      或者:

      if [ -f file.c ]

      then ...

      fi

      注意:在使用方括号”[]”来测试条件时,方括号要与测试条件之间留出空格

      

      测试条件分类:

        字符串比较类算术比较类与文件相关的条件测试类

      1.字符串比较类:

      string1 = string2 如果两字符串相同,则结果为真

      string1 != string2 如果两字符串不相同,则结果为真

      -n string 如果字符串不是空,则结果为真

      -z string 如果字符串是空,则结果为真

      注意在比较相等或不等的时侯,=/!=的两边要与比较的两字符串要有空格符相隔开

      2.算术比较类:

    expression1 –eq expression2 #如果两个表达式相等,则结果为真
    expression1 –ne expression2 #如果两个表达式不等,则结果为真
    expression1 –gt expression2 #如果前一个表达式大于后一个表达式,则结果为真
    expression1 –ge expression2 #如果前一个表达式大于或等于后一个表达式,则结果为真
    expression1 –lt expression2 #如果前一个表达式小于后一个表达式,则结果为真
    expression1 –le expression2 #如果前一个表达式小于或等于后一个表达式,则结果为真
    ! expression #取表达式的非,即表达式为,则结果为真

      3.文件比较类:

    [ FILE1 -nt FILE2 ] 如果 FILE2 比 FILE1 要老, or 如果 FILE1 exists and FILE2 does not则为真。

    [ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。

    [ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。

     

      

      

  • 相关阅读:
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    C语言I博客作业09
    C语言I博客作业08
    centos安装swoole
    Apache优化:修改最大并发连接数
    centos中安装、升级git
    memcached/memcache安装
  • 原文地址:https://www.cnblogs.com/clover-siyecao/p/5591547.html
Copyright © 2020-2023  润新知