shell if判断参数
参数 | 示例 | 用途 |
---|---|---|
-a | if[ -a /bin ]、if[-a /bin/ls ] | 判断是否为存在的文件或目录,是为True |
-b | if[ -b /dev/vda ] | 判断是否为存在的块文件,是为True |
-c | if [ -c /dev/zero ] | 判断是否为存在的字符文件,是为True |
-d | if[ -d /bin ] | 判断是否为存在的目录,是为True |
-e | if[ -e /bin ]、if[-e /bin/ls ] | 同-a |
-f | if[ -f /bin/ls ] | 判断文件是否存在,是为True |
-g | 判断文件是否存在且设置了SGID,是为True | |
-h | if[ -h /bin/sh ] | 判断文件是否存在且为符号链接,是为True |
-k | 判断文件是否存在且设置了粘滞位,是为True | |
-n | if[ -n “adad” ] | 判断是否为非空串、是为True |
-o | if [ -o optionname ] | 如果shell选项optionname开启则为真 |
-p | 判断文件是否存在且为命名管道,是为True | |
-r | if[ -r /etc/resolv.conf ] | 判断文件是否存在且可读,是为True |
-s | if[ -s /dev/zero ] | 判断文件是否存在且大小为0,是为False |
-t | 判断文件描述符FD是否已打开且指向至少一个终端,是为True | |
-u | 判断文件是否存在且设置了SUID,是为True | |
-v | if[ -v 变量名] | 判断变量是否存在,是为True |
-w | if[ -w /etc/resolv.conf ] | 判断文件是否存在且可写,是为True |
-x | if[ -x /bin/ls ] | 判断文件是否存在且可执行,是为True |
-z | if[ -ge “”] | 判断是否为空串,是为True |
-G | 判断文件是否存在且属有效用户组,是为True | |
-L | if[ -L /bin/sh ] | 同-h |
-N | ||
-O | 判断文件或目录是否存在且被当前进程的有效用户拥有,是为True | |
-S | 判断文件是否存在且为套接字文件,是为True | |
-eq | if[ 1 -eq 1 ] | 等号、判断是否相等,是为True |
-ne | if[ 2 -ne 1 ] | 不等号,判断是否相等,是为False |
-gt | if[ $a -gt $b ] | 大于号、判断
$a 是否大于 $b ,是为True |
-lt | if[ $a -lt $b ] | 小于号、判断
$a 是否小于 $b ,是为True |
-le | if[ $a -le $b ] | 小于等于号、判断
$a 是否小于或等于 $b ,是为True |
-ge | if[ $a -ge $b ] | 大于等于号、判断
$a 是否大于或等于 $b ,是为True |
== | if[ a==a ==a== b ] | 判断两个字符串是否相等,是为True |
!= | if[ a!=a !=a!= b ] | 判断两个字符串是否不等,是为True |
> | if[ ‘aaa’ > ‘bbb’ ] | 判断第一个字符串排序是否在第二个字符串前,是为True |
< | if[ ‘aaa’ < ‘bbb’ ] | 判断第一个字符串排序是否在第二个字符串后,是为True |