• 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 指向相同的设备和节点号则为真。

     

      

      

  • 相关阅读:
    css样式表中的样式覆盖顺序(转)
    1.2 明确你的 前端学习路线 和 方法
    1.1 开篇:重新理解前端
    3_1:语言基础:原始值 与 引用值
    2_5:语言基础:语句
    2_4:语言基础:操作符
    2_3:语言基础:数据类型
    2_2:语言基础:变量
    2_1:语言基础:语法
    1_2 HTML中的JavaScript
  • 原文地址:https://www.cnblogs.com/clover-siyecao/p/5591547.html
Copyright © 2020-2023  润新知