if语句的判断参数
- if判断语句 if [ ... ]中可用的参数有:
- –b 当文件存在并且是块文件时为真
- -c 当文件存在并且是字符文件时为真
- -d 当文件存在并且是一个目录时为真
- -e 当文件或目录存在时为真
- -f 当文件存在且是正规文件时为真
- -g 当文件或目录存在且设置了SGID位时为真
- -h 当文件存在且是符号链接时为真
- -k 当文件或目录存在且设置了粘滞位时为真
- -p 当文件存在且是命令管道时为真
- -r 当文件或目录存在且可读时为真
- -s 当文件存在且大小不为0时为真
- -u 当文件或目录存在且设置了SUID位时为真
- -w 当文件或目录存在且可执行时为真
- -o 当文件或目录存在且被当前进程的有效用户ID所指定的用户拥有时为真
Bash中字符的比较:
- -eq 等于
- -ne 不等于
- -gt 大于
- -lt 小于
- -le 小于等于
- -ge 大于等于
- -z 空串
- = 两个字符相等
- != 两个字符不等
- -n 非空串
即
[ -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 比 file2 新,或 file1 不存但 file2 不存在则为真。
[ file1 -ot file2 ] 如果 file1 比 file2 要老, 或者 file2 存在且 file1 不存在则为真。
[ file1 -ef file2 ] 如果 file1 和 file2 指向相同的设备和节点号则为真。
[ -o OPTIONNAME ] 如果 shell选项 “OPTIONNAME” 开启则为真。
[ -z string ] “string” 的长度为零则为真。
[ -n string ] or [ string ] “string” 的长非零则为真。
[ string1 == string2 ] 如果2个字符串相同则为真。
[ string1 != string2 ] 如果字符串不相等则为真。
[ string1 < string2 ] 如果 string1 排序在 string2 之前则为真。
[ string1 > string2 ] 如果 string1 排序在 string2 之后则为真。
转载:http://blog.sina.com.cn/s/blog_76c853c201019dh7.html