shell脚本之关系运算符
时间: 2023-12-07 16:39:45 浏览: 79
关系运算符是用于比较两个值之间关系的运算符,包括等于、不等于、大于、小于、大于等于和小于等于。在Shell脚本中,关系运算符主要用于比较数字和字符串。
以下是几个常用的关系运算符及其含义:
- -eq:等于,例如:if [ $a -eq $b ]
- -ne:不等于,例如:if [ $a -ne $b ]
- -gt:大于,例如:if [ $a -gt $b ]
- -lt:小于,例如:if [ $a -lt $b ]
- -ge:大于等于,例如:if [ $a -ge $b ]
- -le:小于等于,例如:if [ $a -le $b ]
其中,$a和$b为需要比较的值。
以下是一个比较数字大小的例子:
```shell
a=10
b=20
if [ $a -eq $b ]
then
echo "a 等于 b"
else
echo "a 不等于 b"
fi
```
输出结果为:a 不等于 b
以下是一个比较字符串大小的例子:
```shell
a="abc"
b="efg"
if [ $a = $b ]
then
echo "$a = $b : a 等于 b"
else
echo "$a = $b: a 不等于 b"
fi
```
输出结果为:abc = efg: a 不等于 b
相关问题
shell脚本中的运算符
在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 ]`
shell脚本 布尔运算符
在 shell 脚本中,布尔运算符用于执行逻辑运算操作。常用的布尔运算符有以下几种:
1. 逻辑与(&&):用于判断两个条件是否同时为真。只有当两个条件都为真时,整体表达式才为真。
例如:`[ 条件1 ] && [ 条件2 ]`
2. 逻辑或(||):用于判断两个条件是否至少有一个为真。只要其中一个条件为真,整体表达式就为真。
例如:`[ 条件1 ] || [ 条件2 ]`
3. 逻辑非(!):用于取反一个条件的结果。如果条件为真,则取反后为假;如果条件为假,则取反后为真。
例如:`! [ 条件 ]`
这些布尔运算符通常在条件语句中使用,用于控制程序的流程和判断条件的真假。下面是一个示例脚本,演示了布尔运算符的使用:
```bash
#!/bin/bash
# 定义两个变量
a=10
b=5
# 逻辑与运算
if [ "$a" -gt 0 ] && [ "$b" -lt 10 ]; then
echo "条件1和条件2都为真"
fi
# 逻辑或运算
if [ "$a" -eq 0 ] || [ "$b" -eq 0 ]; then
echo "条件1或条件2至少有一个为真"
fi
# 逻辑非运算
if ! [ "$a" -eq 0 ]; then
echo "条件为假"
fi
```
在上面的示例中,根据变量 a 和 b 的值,通过使用不同的布尔运算符来判断条件的真假,并输出相应的结果。
阅读全文