一、条件判断语法格式
- 格式1: test 条件表达式
- 格式2:  [ 条件表达式 ]
- 格式3:  [[ 条件表达式 ]] 
warning 注意: “[”、“]”、”[[“ 、”]]” 两侧都必须有空格。
例如:
- [ 条件表达式与两边的中括号之间有空格 ]
- [[ 条件表达式与两边的双中括号之间有空格 ]]
二、条件判断相关参数
| 判断参数 | 含义 | 
| -e | 判断文件是否存在(任何类型文件) | 
| -f | 判断文件是否存在并且是一个普通文件 | 
| -d | 判断文件是否存在并且是一个目录 | 
| -L | 判断文件是否存在并且是一个软连接文件 | 
| -b | 判断文件是否存在并且是一个块设备文件 | 
| -S | 判断文件是否存在并且是一个套接字文件 | 
| -c | 判断文件是否存在并且是一个字符设备文件 | 
| -p | 判断文件是否存在并且是一个命名管道文件 | 
| -s | 判断文件是否存在并且是一个非空文件(有内容) | 
举例:
test -e Demo.sh                # 只要文件存在条件为真
[ -d /shell01/dir1 ]        # 判断目录是否存在,存在条件为真
[ ! -d /shell01/dir1 ]        # 判断目录是否存在,不存在条件为真
[[ -f /shell01/Demo.sh ]]    # 判断文件是否存在,并且是一个普通的文件
三、判断文件权限
| 判断参数 | 含义 | 
| -r | 当前用户对其是否可读 | 
| -w | 当前用户对其是否可写 | 
| -x | 当前用户对其是否可执行 | 
| -u | 是否有suid,高级权限冒险位 | 
| -g | 是否sgid,高级权限强制位 | 
| -k | 是否有t位,高级权限粘滞位 | 
四、判断文件新旧
| 判断参数 | 含义 | 
| file1 -nt file2 | 比较file1是否比file2新 | 
| file1 -ot file2 | 比较file1是否比file2旧 | 
| file1 -ef file2 | 比较是否为同一个文件 | 
五、判断整数
| 判断参数 | 含义 | 
| -eq | 相等 | 
| -ne | 不等 | 
| -gt | 大于 | 
| -lt | 小于 | 
| -ge | 大于等于 | 
| -le | 小于等于 | 
六、判断字符串
| 判断参数 | 含义 | 
| -z | 判断是否为空字符串,字符串长度为0则成立 | 
| -n | 判断是否为非空字符串,字符串长度不为0则成立 | 
| string1 = string2 | 判断字符串是否相等 | 
| string1 != string2 | 判断字符串是否相不等 | 
                
             
                
                
            
暂无评论