作用
内置命令。
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
语法
test [option] file
参数
文件内容判断
- -s<文件>:如果文件的长度不为零,则为真;
文件类型判断
- -b<文件>:块特殊文件,则为真;
- -c<文件>:字符特殊文件,则为真;
- -d<文件>:目录,则为真;
- -e<文件>:如果文件存在,则为真;
- -f<文件>:普通文件,则为真;
- -p<文件>:命名管道,则为真;
- -S<文件>:套接字特殊文件,则为真;
- -L<文件>:链接文件,则为真;
文件权限判断
- -r<文件>:如果文件可读,则为真;
- -w<文件>:如果文件可写,则为真;
- -x<文件>:如果文件可执行,则为真。
- -u<文件>:如果设置了文件的SUID位,则为真;
- -g<文件>:如果设置了文件的SGID位,则为真;
- -k<文件>:如果设置了文件的Sticky bit位,则为真;
- -G<文件>:如果文件存在且归该组所有,则为真;
- -O<文件>:如果文件存在并且归该用户所有,则为真;
两个文件之间比较
-nt
newer than,判断file1是否比file2新-ot
older than,判断file1是否比file2旧-ef
判断file1与file2是否为同一文件,可用在判断hard link上主要判断两个文件是否指向同一个inode
两个整数之前的比较
-eq
两数值相等(equal)-ne
两数值不等(not equal)u-gt
n1>n2(greater than)-lt
n1<n2(less than)-ge
n1>=n2(greater than or equal)-le
n1<=n2(less than or equal)
判定字符串
-z
判定字符串是否为非空,若为空则返回True(0)-n
判定字符串为空str1 == str
2str1 != str2
多重条件判断
-a
and-o
or!