LIUNX SHELL中-a 到-z的解释
[-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 存在且大小不为 o 则为真。
[-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 则为真。
[-z “echo 111s|sed 's/[0-9]//g'” ] && echo 1 || echo 0 #把字符串中的数字都替换掉