test命令用于检查某个条件是否成立。它可以进行数值、字符和文件三方面的测试。
-eq 等于-ne 不等于-gt 大于-ge 大于或等于-lt 小于-le 小于或等于例如,我们可以测试两个变量是否相等:
- num1=100
- num2=200
- if test $num1 -eq $num2
- then
- echo 'Two values are equal!'
- else
- echo 'Two values are not equal!'
- fi
= 等于!= 不等于-z 字符串长度是否为0,长度为0返回真-n 字符串长度是否为0,长度不为0返回真例如,我们可以测试两个字符串是否相同:
- str1="hello"
- str2="world"
- if test str1 = str2
- then
- echo 'Two strings are the same!'
- else
- echo 'Two strings are different!'
- fi
-e 文件是否存在-d 是否存在并且是一个目录-f 是否存在并且是一个文件-r 文件是否存在并且可读-w 文件是否存在并且可写-x 文件是否存在并且可执行例如,我们可以测试文件是否存在并且是一个目录:
- dir_path="./my_dir"
- if test -d $dir_path
- then
- echo 'The directory exists!'
- else
- echo 'The directory does not exist!'
- fi
注意: [ 是 test 的简化版本,所以下面两种写法是等价的:
if test $a -eq $b if [ $a -eq $b ]