Shell 里面的中括号(包括单中括号与双中括号)可用于一些条件的测试:
- 算术比较, 比如一个变量是否为0,
[ $var -eq 0 ]
。 - 文件属性测试,比如一个文件是否存在,
[ -e $var ]
, 是否是目录,[ -d $var ]
。 - 字符串比较, 比如两个字符串是否相同,
[[ $var1 = $var2 ]]
。
[] 常常可以使用 test 命令来代替,后面有介绍。
算术比较
对变量或值进行算术条件判断:
[ $var -eq 0 ] # 当 $var 等于 0 时,返回真
[ $var -ne 0 ] # 当 $var 不等于 0 时,返回真
需要注意的是 [ 与 ] 与操作数之间一定要有一个空格,否则会报错。比如下面这样就会报错:
[$var -eq 0 ] 或 [ $var -ne 0]
其他比较操作符:
操作符 | 意义 |
---|---|
-gt | 大于 |
-lt |