shell 中条件判断
if
中的
-z
到
-d
的意思
2011-09-05 10:30
[ -a FILE ]
如果
FILE
存在则为真。
[ -b FILE ]
如果
FILE
存在且是一个块特殊文件则为真。
[ -c FILE ]
如果
FILE
存在且是一个字特殊文件则为真。
[ -d FILE ]
如果
FILE
存在且是一个目录则为真。
[ -e FILE ]
如果
FILE
存在则为真。
[ -f FILE ]
如果
FILE
存在且是一个普通文件则为真。
[ -g FILE ]
如果
FILE
存在且已经设置了
SGID
则为真。
[ -h FILE ]
如果
FILE
存在且是一个符号连接则为真。
[ -k FILE ]
如果
FILE
存在且已经设置了粘制位则为真。
[ -p FILE ]
如果
FILE
存在且是一个名字管道
(F
如果
O)
则为真。
[ -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
存在且是一个套接字则为真。
[ FILE1 -nt FILE2 ]
如果
FILE1 has been changed more recently than FILE2,
or
如果
FILE1 exists and FILE2 does not
则为真。
[ FILE1 -ot FILE2 ]
如果
FILE1
比
FILE2
要老
,
或者
FILE2
存在且
FILE1
不存在则为真。
[ FILE1 -ef FILE2 ]
如果
FILE1
和
FILE2
指向相同的设备和节点号则为真。
[ -o OPTIONNAME ]
如果
shell
选项
“OPTIONNAME”
开启则为真。
[ -
z STRING ] “STRING”
的长度为零则为真。
[ -
n STRING ] or [ STRING ] “STRING”
的长度为非零
non-zero
则为真。
[ STRING1 == STRING2 ]
如果
2
个字符串相同。
“=” may be used instead of
“==” for strict POSIX compliance
则为真。
[ STRING1 != STRING2 ]
如果字符串不相等则为真。
[ STRING1 < STRING2 ]
如果
“STRING1” sorts before “STRING2”
lexicographically in the current locale
则为真。
[ STRING1 > STRING2 ]
如果
“STRING1” sorts after “STRING2”
lexicographically in the current locale
则为真。
[ ARG1 OP ARG2 ] “OP” is one of
-eq, -ne, -lt, -le, -gt or -ge. These arithmetic
binary operators return true if “ARG1” is equal to, not equal to, less than, less
than or equal to, greater than
, or greater than or equal to “ARG2”, respectively.
“ARG1” and “ARG2” are integers.