双圆括号命令允许在比较中包含高级数学公式。test命令只允许在比较中进行简单的算术操作。双圆括号命令提供更多的数学符号,这些符号是其他语言程序员习惯使用的符号。 在双圆括号内的表达式中,不必转义大于号。
(( $val ** 2 > 90 )) # 比较$var的平方是不是大于90
双方括号 命令为字符串比较 提供高级功能 双方括号提供模式匹配(正则表达式)test不提供
[ $var = [Ss]top ] #$var 必须等于 [Ss]top
[[ $var = [Ss]top ]] #var 可以等于Stop 或stop