- shell脚本if判断变量介绍
变量 | 含义 |
[ -a FILE ] | 如果 FILE 存在则为真 |
[ -b FILE ] | 如果 FILE 存在且是一个块特殊文件则为真 |
[ -c FILE ] | 如果 FILE 存在且是一个字符特殊文件则为真 |
[ -e FILE | 如果 FILE 存在则为真 |
[ -f FILE ] | 如果 FILE 存在且是一个普通文件则为真 |
[ -g FILE ] | 如果 FILE 存在且已经设置了SGID则为真 |
[ -h FILE ] | 如果 FILE 存在且是一个符号连接则为真 |
[ -k FILE ] | 如果 FILE 存在且已经设置了粘制位则为真 |
[ -r FILE ] | 如果 FILE 存在且是可读的则为真 |
[ -s FILE ] | 如果 FILE 存在且大小不为0则为真 |
[ -t FD ] | 如果文件描述符 FD 打开且指向一个终端则为真 |
[ -u FILE ] | 如果 FILE 存在且设置了SUID (set user ID)则为真 |
[ -w FILE ] | 如果 FILE 如果 FILE 存在且是可写的则为真 |
[ -x FILE ] | 如果 FILE 存在且是可执行的则为真 |
[ -O FILE ] | 如果 FILE 存在且属有效用户ID则为真 |
[ - G FILE ] | 如果 FILE 存在且属有效用户组则为真 |
[ -L FILE ] | 如果 FILE 存在且是一个符号连接则为真 |
[ -N FILE ] | 如果 FILE 存在 and has been mod如果ied since it was last read则为真 |
[ -S FILE ] | 如果 FILE 存在且是一个套接字则为真 |
[ -z STRING ] | “STRING” 的长度为零则为真 |
- 字符串判断
变量 | 含义 |
str1 = str2 | 两个字符串完全相等为真 |
str1 != str2 | 两个字符串不完全相等为真 |
-n str1 | 当串的长度大于0时为真(串非空) |
-z str1 | 当串的长度为0时为真(空串) |
str1 | 当串str1为非空时为真 |
- 数字判断
变量 | 含义 |
int1 -eq int2 | 两数字相等为真 |
int1 -ne int2 | 两数字不相等为真 |
int1 -gt int2 | int1大于int2为真 |
int1 -ge int2 | int1>= int2为真 |
in1 -lt int2 | int1<int2 为真 |
int1 -le int2 | int1 <= int2为真 |
- 文件判断
变量名 | 含义 |
-r file | 用户可读为真 |
-w file | 用户可写为真 |
-f file | -文件为正规文件为真 |
-x file | 用户可执行为真 |
-d file | 文件为目录为真 |
-c file | 存在且是特殊字符文件为真 |
-s file | 文件大小非0为真 |
-b file | 文件为块特殊文件为真 |
-t file | 文件描述符(默认1)指定的设备为终端时为真 |
- 复杂逻辑
变量名 | 含义 |
-a | 与 |
-o | 或 |
! | 非 |
!= | 不等于 |