俺反正是经常忘啊,用的时候总是翻箱倒柜的找也不是个事,把它们列在这里吧。
- –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所指定的用户拥有时返回真。
UNIX Shell 里面比较字符写法:
- -eq 等于
- -ne 不等于
- -gt 大于
- -lt 小于
- -le 小于等于
- -ge 大于等于
- -z 空串
- = 两个字符相等
- != 两个字符不等
- -n 非空串
一、shell文句,进行数据值判断。使用到shell中的关系运算符,或连接符。
关系运算符,如下:
1、-gt:大于,greater than。
2、-eq:等于,equal。
3、-lt:小于,less than。
4、-ge:大于等于,greater than or equal。
5、-le:小于等于,less than or equal。
6、-ne:不等于,not equal。
连接符,如下:
1、-a:且,and。
2、-o:或,or。
条件判断,逻辑运算符,如下:
1、&&:用来执行条件成立后执行的命令。
2、||:用来执行条件不成立后的执行命令。
二、shell文句如下。
1、大于0。
if [ $# -gt 0 ]; then
...
fi
2、等于0。
if [ $# -eq 0 ]; then
...
fi
3、小于0。
if [ $# -eq 0 ]; then
...
fi
4、大于等于0。
if [ $# -ge 0 ]; then
...
fi
if [ $# -ge 0 ] && [ $# -eq 0 ]; then
...
fi
5、小于等于0。
if [ $# -le 0 ]; then
...
fi
if [ $# -le 0 ] && [ $# -eq 0 ]; then
...
fi
6、不等于0.
if [ $# -ne 0 ]; then
...
fi
if [ $# -gt 0 ] || [ $# -lt 0 ]; then
...
fi