shell 中条件判断

时间:2023-03-09 00:24:40
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.