您的位置:首页 > 科技 > 能源 > Shell 基本运算符

Shell 基本运算符

2024/10/31 9:50:53 来源:https://blog.csdn.net/mwm0213/article/details/139479140  浏览:    关键词:Shell 基本运算符

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
💝💝💝如有需要请大家订阅我的专栏【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,这与我们熟悉的大多数编程语言不一样。
  • 完整的表达式要被 包含,注意这个字符不是常用的单引号,在 Esc 键下边

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 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com