Lv.的博客

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.

 

posted @ 2015-01-06 10:32  Avatarx  阅读(293)  评论(0编辑  收藏  举报