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