一、条件判断语法格式
- 格式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 |
判断字符串是否相不等 |
暂无评论