test命令只能在比较中使用简单的算术操作具有很大的局限性,双括号命令为我们提供了更多的数学符号。双括号命令允许你在比较过程中使用更高级的数学表达式。
使用双括号
使用格式((expression))
,expression可以是任意的数学赋值或者比较表达式,除了test命令使用的标准数学运算符,还支持一下运算符。
符号 | 描述 |
---|---|
val++ | 后增 |
val-- | 后减 |
++valu | 先增 |
--val | 先减 |
! | 逻辑非 |
~ | 位求反 |
** | 幂运算 |
<< | 位左移 |
>> | 位右移 |
& | 位布尔与 |
| | 位布尔或 |
&& | 逻辑与 |
|| | 逻辑或 |
使用双方括号
双方括号命令提供了针对字符串比较的高级特性,此特性在test中并不存在-模式匹配
注意:双方括号在bash shell中工作良好,但要注意的是并不是在所有的shell中都支持。
使用格式[[expression]]
case命令
#! /bin/bash
case varible in
pattern1)
commands1;;
pattern2)
commands2;;
*)
default;;
esac
注意:在每个命令结束后是两个分号