shell脚本中的运算符
时间: 2023-10-29 21:49:17 浏览: 81
在shell脚本中,常见的运算符包括算术运算符、关系运算符、逻辑运算符和位运算符。
1. 算术运算符
| 运算符 | 描述 | 举例 |
| ------ | ------------------- | --------------- |
| + | 加法 | `expr $a + $b` |
| - | 减法 | `expr $a - $b` |
| * | 乘法 | `expr $a \* $b` |
| / | 除法 | `expr $a / $b` |
| % | 取余数 | `expr $a % $b` |
| ++ | 自增运算符 | `a++` 或 `++a` |
| -- | 自减运算符 | `a--` 或 `--a` |
| += | 加后赋值 | `a+=b` |
| -= | 减后赋值 | `a-=b` |
| *= | 乘后赋值 | `a*=b` |
| /= | 除后赋值 | `a/=b` |
| %= | 取余数后赋值 | `a%=b` |
2. 关系运算符
| 运算符 | 描述 | 举例 |
| ------ | ------------------ | ------------------------ |
| -eq | 相等于 | `[ $a -eq $b ]` |
| -ne | 不等于 | `[ $a -ne $b ]` |
| -gt | 大于 | `[ $a -gt $b ]` |
| -lt | 小于 | `[ $a -lt $b ]` |
| -ge | 大于等于 | `[ $a -ge $b ]` |
| -le | 小于等于 | `[ $a -le $b ]` |
| = | 字符串相等 | `[ $a = $b ]` |
| != | 字符串不相等 | `[ $a != $b ]` |
| -z | 字符串长度为零 | `[ -z $a ]` |
| -n | 字符串长度不为零 | `[ -n $a ]` |
| str | 字符串非空 | `[ $a ]` 或 `[ -n $a ]` |
3. 逻辑运算符
| 运算符 | 描述 | 举例 |
| ------ | ------------------------ | ---------------------- |
| ! | 非运算符 | `!false` |
| -o | 或运算符 | `[ $a -lt 20 -o $b -gt 100 ]` |
| -a | 与运算符 | `[ $a -lt 20 -a $b -gt 100 ]` |
| && | 逻辑与 | `[[ $a -lt 100 && $b -gt 100 ]]` |
| \|\| | 逻辑或 | `[[ $a -lt 100 || $b -gt 100 ]]` |
4. 位运算符
| 运算符 | 描述 | 举例 |
| ------ | ------------------------ | ---------------------- |
| & | 按位与 | `[ $a & $b ]` |
| \| | 按位或 | `[ $a \| $b ]` |
| ^ | 按位异或 | `[ $a ^ $b ]` |
| ~ | 按位取反 | `~$a` |
| << | 左移 | `a<<2` |
| >> | 右移 | `a>>2` |
需要注意的是,使用运算符时必须将其放在方括号 `[ ]` 中,并在运算符前后加上空格。例如:`[ $a -eq $b ]`
阅读全文