Shell 基本运算符

2024-06-06 08:20:05 浏览数 (2)

一、算术运算符

1.1 加法运算

  • 符号:

假设a = 10,b=20

代码语言:javascript复制
value=`expr $a   $b`
echo "a   b : $value"
# 输出为:a   b : 30

注意:

  • 表达式和运算符之间要有空格,例如 2 2 是不对的,必须写成 2 2,这与我们熟悉的大多数编程语言不一样。
  • 完整的表达式要被 包含,注意这个字符不是常用的单引号,在 Esc 键下边

1.2 减法运算

符号:- 假设a = 10,b=20

代码语言:javascript复制
value=`expr $b - $a`
echo "b - a : $value"
# 输出为:b - a  : 10

1.3 乘法运算

符号:*

假设a = 10,b=20

代码语言:javascript复制
value=`expr $a * $b`
echo "a * b : $value"
# 输出为:a   b : 200

注意:

  • 乘号(*)前边必须加反斜杠()才能实现乘法运算

1.4 除法运算

符号:/ 假设a = 10,b=20

代码语言:javascript复制
value=`expr $a / $b`
echo "a * b : $value"
# 输出为:a / b : 0.5

1.5 取余运算

符号:% 假设a = 10,b=20

代码语言:javascript复制
value=`expr $a % $b`
echo "a % b : $value"
# 输出为:a / b : 0

1.6 赋值运算

符号:=

代码语言:javascript复制
a=10
b=a
echo "b的值 : $b"
# 输出为:b的值:10

1.7 相等判断

符号:==

代码语言:javascript复制
a=10
b=10
if [$a == $b]: then 
echo "a等于b"
fi

1.8 非等判断

符号:!=

代码语言:javascript复制
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 实例展示

代码语言:javascript复制
a=10
b=20

if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
then
   echo "$a -ne $b: a 不等于 b"
else
   echo "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
then
   echo "$a -gt $b: a 大于 b"
else
   echo "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
then
   echo "$a -lt $b: a 小于 b"
else
   echo "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
then
   echo "$a -ge $b: a 大于或等于 b"
else
   echo "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
then
   echo "$a -le $b: a 小于或等于 b"
else
   echo "$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 实例展示

代码语言:javascript复制
a=10
b=20

if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a == $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
   echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "$a 小于 100 或 $b 大于 100 : 返回 true"
else
   echo "$a 小于 100 或 $b 大于 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
   echo "$a 小于 5 或 $b 大于 100 : 返回 true"
else
   echo "$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 实例展示

代码语言:javascript复制
a=10
b=20

if [[ $a -lt 100 && $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

if [[ $a -lt 100 || $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

运算结果如下: 返回 false 返回 true

五、字符串运算符

5.1 运算符解析

  • =:检测两个字符串是否相等,相等返回 true
  • !=:检测两个字符串是否不相等,不相等返回 true
  • -z:检测字符串长度是否为0,为0返回 true
  • -n:检测字符串长度是否不为 0,不为 0 返回 true
  • $:检测字符串是否不为空,不为空返回 true

5.2 实例展示

代码语言:javascript复制
a="abc"
b="efg"

if [ $a = $b ]
then
   echo "$a = $b : a 等于 b"
else
   echo "$a = $b: a 不等于 b"
fi
if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a != $b: a 等于 b"
fi
if [ -z $a ]
then
   echo "-z $a : 字符串长度为 0"
else
   echo "-z $a : 字符串长度不为 0"
fi
if [ -n "$a" ]
then
   echo "-n $a : 字符串长度不为 0"
else
   echo "-n $a : 字符串长度为 0"
fi
if [ $a ]
then
   echo "$a : 字符串不为空"
else
   echo "$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系列–定时任务设置

觉得有用的话点个赞

0 人点赞