shell if

1.shell判断

[ -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 如果 FILE1FILE2 does not则为真。 exists and
[ FILE1 -ot FILE2 ] 	如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。
[ FILE1 -ef FILE2 ] 	如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。
[ -o OPTIONNAME ] 	如果 shell选项 “OPTIONNAME” 开启则为真。
[ -z STRING ] 	“STRING” 的长度为零则为真。 

 

shell if 命令参数说明
-b    当file存在并且是块文件时返回真
-c    当file存在并且是字符文件时返回真
-d    当pathname存在并且是一个目录时返回真
-e    当pathname指定的文件或目录存在时返回真
-f     当file存在并且是正规文件时返回真
-g     当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
-h     当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
-k     当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
-p     当file存在并且是命令管道时返回为真
-r     当由pathname指定的文件或目录存在并且可读时返回为真
-s     当file存在文件大小大于0时返回真
-u     当由pathname指定的文件或目录存在并且设置了SUID位时返回真
-w    当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
-o     当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

比较字符写法:
-eq    等于
-ne    不等于
-gt     大于
-lt    小于
-le     小于等于
-ge    大于等于
-z    空串
* =    两个字符相等
* !=   两个字符不等
* -n   非空串

 

posted @ 2017-03-13 14:52  sunmmi  阅读(145)  评论(0)    收藏  举报