if语句与$特殊含义

  1. $的特殊含义
    1. $0 代表脚本名字.
    2. $1~$n  添加到Shell的各参数值。
    3. $? 执行上一个指令的返回值,为0说明正常执行
    4. $* 所有参数列表
    5. $-  显示shell使用的当前选项,与set命令功能相同
    6. $# 参数个数
    7. $@  不加引号与$*相同,加上引号,$@是把每个参数看成一个字符串,而$*是把所有的参数看成一个字符串
    8. $$ Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)
    9. $!  Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
  2. if 语句
    1.   1: 
        2: if [ expression ];then 
        3:     statement
        4: else
        5:     statement
        6: fi
        7: 
        8: 或者
        9: 
       10: if   [ expression ];then 
       11:     statement;
       12: elif [ expression ];then
       13:     statement;
       14: elif [ expression ];then
       15:     statement;
       16: else
       17:     statement
       18: fi
    2. 关系运算符 只支持数字,不支持字符串,除非字符串的值是数字。
      1. -gt 大于  -lt 小于 –eq 等于
      2. -ge 大于等于  -le 小于等于  -ne 不等于
    3. 布尔运算符
      1. !   取反
      2. -a 与运算,两个表达式都为 true 才返回 true。
      3. -o 或运算,有一个表达式为 true 则返回 true。
    4. 逻辑运算符
      1. && 逻辑与
      2. ||  逻辑或
    5. 字符串运算符
      1. =  判断两个字符串是否相同,相同返回true   [ $a = $b ]
      2. != 字符串不相同返回true                          [ $a != $b ]
      3. -z 检测字符串长度是否为0,为0返回 true。  [ –z $a ]
      4. -n 检测字符串长度是否为0,不为0返回true   [ –n $a ]
      5. $ 检测字符串是否为空,不为空返回true        [ $a ]
    6. 关于文件和目录
      1. -d 判断目录是否存在 
      2. -f 判断文件是否存在并且是普通文件(既不是目录,也不是设备文件)
      3. -b  判断文件是否是块设备
      4. -c 判断某文件是否是字符设备
    7. 判断文件的属性
      1. -r  判断文件是否具有可读的属性
      2. -w  判断文件是否具有可写的属性
      3. -x  判断文件是否具有可执行的属性
      4. -s  判断文件是否为非空白文件
    8. 两个文件之间的比较
      1. -nt  第一个文件比第二个文件新
      2. -ot 第一个文件比第二个文件旧
      3. -ef 第一个文件与第二个文件是同一个
    9. test 命令
      1. test expression
      2. test expression 语句 与[ expression ]等价,[]与expression之间有空格。
原文地址:https://www.cnblogs.com/cyj1258/p/12260339.html