💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
💝💝💝如有需要请大家订阅我的专栏【Linux系列】哟!我会定期更新相关系列的文章💝💝💝
文章目录
- 一、算术运算符
- 1.1 加法运算
- 1.2 减法运算
- 1.3 乘法运算
- 1.4 除法运算
- 1.5 取余运算
- 1.6 赋值运算
- 1.7 相等判断
- 1.8 非等判断
- 二、关系运算
- 2.1 运算符解析
- 2.2 实例展示
- 三、布尔运算符
- 3.1 运算符解析
- 3.2 实例展示
- 四、逻辑运算符
- 4.1 运算符解析
- 4.2 实例展示
- 五、字符串运算符
- 5.1 运算符解析
- 5.2 实例展示
- 结束语
与其他编程语言一样,shell也有相应的运算符,主要有以下几种:
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
在shell语法中运算符通常与awk 和 expr两个命令搭配使用
一、算术运算符
1.1 加法运算
- 符号:+
假设a = 10,b=20
value=`expr $a + $b`
echo "a + b : $value"
# 输出为:a + b : 30
注意:
- 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
- 完整的表达式要被
1.2 减法运算
符号:-
假设a = 10,b=20
value=`expr $b - $a`
echo "b - a : $value"
# 输出为:b - a : 10
1.3 乘法运算
符号:*
假设a = 10,b=20
value=`expr $a \* $b`
echo "a * b : $value"
# 输出为:a + b : 200
注意:
- 乘号(*)前边必须加反斜杠()才能实现乘法运算
1.4 除法运算
符号:/
假设a = 10,b=20
value=`expr $a / $b`
echo "a * b : $value"
# 输出为:a / b : 0.5
1.5 取余运算
符号:%
假设a = 10,b=20
value=`expr $a % $b`
echo "a % b : $value"
# 输出为:a / b : 0
1.6 赋值运算
符号:=
a=10
b=a
echo "b的值 : $b"
# 输出为:b的值:10
1.7 相等判断
符号:==
a=10
b=10
if [$a == $b]: then
echo "a等于b"
fi
1.8 非等判断
符号:!=
a=10
b=20
if [$a != $b]: then
echo "a不等于b"
fi
二、关系运算
2.1 运算符解析
- -eq:检测两个数是否相等,相等返回 true
- -ne:检测两个数是否不相等,不相等返回 true
- -gt:检测左边的数是否大于右边的,如果是,则返回 true
- -lt:检测左边的数是否小于右边的,如果是,则返回 true
- -ge:检测左边的数是否大于等于右边的,如果是,则返回 true
- -le:检测左边的数是否小于等于右边的,如果是,则返回 true
2.2 实例展示
a=10
b=20if [ $a -eq $b ]
thenecho "$a -eq $b : a 等于 b"
elseecho "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
thenecho "$a -ne $b: a 不等于 b"
elseecho "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
thenecho "$a -gt $b: a 大于 b"
elseecho "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
thenecho "$a -lt $b: a 小于 b"
elseecho "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
thenecho "$a -ge $b: a 大于或等于 b"
elseecho "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
thenecho "$a -le $b: a 小于或等于 b"
elseecho "$a -le $b: a 大于 b"
fi
运算结果如下:
10 -eq 20: a 不等于 b
10 -ne 20: a 不等于 b
10 -gt 20: a 不大于 b
10 -lt 20: a 小于 b
10 -ge 20: a 小于 b
10 -le 20: a 小于或等于 b
三、布尔运算符
3.1 运算符解析
- !:非运算,表达式为 true 则返回 false,否则返回 true
- -o:或运算,有一个表达式为 true 则返回 true
- -a:与运算,两个表达式都为 true 才返回 true
3.2 实例展示
a=10
b=20if [ $a != $b ]
thenecho "$a != $b : a 不等于 b"
elseecho "$a == $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
thenecho "$a 小于 100 且 $b 大于 15 : 返回 true"
elseecho "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
thenecho "$a 小于 100 或 $b 大于 100 : 返回 true"
elseecho "$a 小于 100 或 $b 大于 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
thenecho "$a 小于 5 或 $b 大于 100 : 返回 true"
elseecho "$a 小于 5 或 $b 大于 100 : 返回 false"
fi
运算结果输出如下:
10 != 20 : a 不等于 b
10 小于 100 且 20 大于 15 : 返回 true
10 小于 100 或 20 大于 100 : 返回 true
10 小于 5 或 20 大于 100 : 返回 false
四、逻辑运算符
4.1 运算符解析
- &&:逻辑的 AND
- ||:逻辑的 OR
4.2 实例展示
a=10
b=20if [[ $a -lt 100 && $b -gt 100 ]]
thenecho "返回 true"
elseecho "返回 false"
fiif [[ $a -lt 100 || $b -gt 100 ]]
thenecho "返回 true"
elseecho "返回 false"
fi
运算结果如下:
返回 false
返回 true
五、字符串运算符
5.1 运算符解析
- =:检测两个字符串是否相等,相等返回 true
- !=:检测两个字符串是否不相等,不相等返回 true
- -z:检测字符串长度是否为0,为0返回 true
- -n:检测字符串长度是否不为 0,不为 0 返回 true
- $:检测字符串是否不为空,不为空返回 true
5.2 实例展示
a="abc"
b="efg"if [ $a = $b ]
thenecho "$a = $b : a 等于 b"
elseecho "$a = $b: a 不等于 b"
fi
if [ $a != $b ]
thenecho "$a != $b : a 不等于 b"
elseecho "$a != $b: a 等于 b"
fi
if [ -z $a ]
thenecho "-z $a : 字符串长度为 0"
elseecho "-z $a : 字符串长度不为 0"
fi
if [ -n "$a" ]
thenecho "-n $a : 字符串长度不为 0"
elseecho "-n $a : 字符串长度为 0"
fi
if [ $a ]
thenecho "$a : 字符串不为空"
elseecho "$a : 字符串为空"
fi
输出结果如下所示:
abc = efg: a 不等于 b
abc != efg : a 不等于 b
-z abc : 字符串长度不为 0
-n abc : 字符串长度不为 0
abc : 字符串不为空
结束语
❤️❤️❤️请大家记得订阅我的专栏【Linux系列】哟❤️❤️❤️
linux相关文章索引 | 文章链接 |
---|---|
shell 变量 | shell 变量 |
Linux命令篇(一):文件管理部分 | Linux命令篇(一):文件管理部分 |
Linux命令篇(二):文档编辑部分 | Linux命令篇(二):文档编辑部分 |
Linux命令篇(三):磁盘管理部分 | Linux命令篇(三):磁盘管理部分 |
Linux命令篇(四):系统管理部分 | Linux命令篇(四):系统管理部分 |
Linux命令篇(五):解压缩部分 | Linux命令篇(五):解压缩部分 |
Linux命令篇(六):vi/vim专项 | Linux命令篇(六):vi/vim专项 |
Linux系列:系统目录结构 | Linux系列:系统目录结构 |
Linux系列–shell基础语法 | Linux系列–shell基础语法 |
Linux系列–定时任务设置 | Linux系列–定时任务设置 |
觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙