测试的两种方法
方法一:
test expression
方法二:
[ expression ]
文件测试
[ -b FILE ] #当文件存在且是块文件时为真,否则假
[ -c FILE ] #当文件存在且是字符设备时为真,否则假
[ -d FILE ] #当文件存在且是目录时为真,否则假
[ -e FILE ] #当文件或者目录存在时为真,否则假
[ -f FILE ] #当文件存在且为普通文件时为真,否则假
[ -x FILE ] #当文件存在且为可执行文件是为真,否则假
[ -w FILE ] #当文件存在且为可写文件时为真,否则假
[ -r FILE ] #当文件存在且为可读文件时为真,否则假
[ -l FILE ] #当文件存在且为链接文件时为真,否则假
[ -p FILE ] #当文件存在且为管道文件时为真,否则假
[ -s FILE ] #当文件存在且大小不为0时为真,否则假
[ -S FILE ] #当文件存在且为socket文件时为真,否则假
[ -g FILE ] #当文件存在且设置了SGID时为真,否则假
[ -u FILE ] #当文件存在且设置了SUID时为真,否则假
[ -k FILE ] #当文件存在且设置了sticky属性时为真,否则假
[ -G FILE ] #当文件存在且属于有效的用户组时为真,否则假
[ -O FILE ] #当文件存在且属于有效的用户时为真,否则假
[ FILE1 -nt FILE2 ] #当FILE1比FILE2新时为真,否则假
[ FILE1 -ot FILE2 ] #当FILE1比FILE2旧时为真,否则假
字符串测试
[ -z "string" ] #字符串为空时为真,否则假
[ -n "string" ] #字符串非空时为真,否则假
[ "string1"="string2" ] #字符串string1和string2相同时为真,否则假
[ "string1"!="string2" ] #字符串string1和string2不同时为真,否则假
[ "string1">"string2" ] #按照字典排序,字符串string1在string2之前时为真,否则假
[ "string1"<"string2" ] #按照字典排序,字符串string1在string2之后时为真,否则假
整数比较
[ num1 -eq num2 ] #num1==num2为真,否则假
[ num1 -gt num2 ] #num1>num2为真,否则假
[ num1 -lt num2 ] #num1<num2为真,否则假
[ num1 -ge num2 ] #num1>=num2为真,否则假
[ num1 -le num2 ] #num1<=num2为真,否则假
[ num1 -ne num2 ] #num1!=num2为真,否则假