中括号:test [] [[]]
a. test 和 [ 是 bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是 bash 自带的命令。
Test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq, -gt这种形式。无论是字符串比较还是整数比较都千万不要使用大于号小于号。当然,如果你实在想用也是可以的,对于字符串比较可以使用尖括号的转义形式,如果比较"ab"和"bc":[ ab \< bc ],结果为真,也就是返回状态为0.
b. [[ 是 bash 程序语言的关键字
[ ]],这是内置在shell中的一个命令,比test强大的多了。支持字符串的模式匹配(使用=~操作符时甚至支持shell的正则表达式)。
字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。
在 [[ 中使用 && 和 || ,[ 中使用 -a 和 -o 表示逻辑与和逻辑或。
[[ 中匹配字符串或通配符,不需要引号 . [ 不能使用正则