shell基本运算符

我们两清 提交于 2019-12-01 20:32:40

Shell运算符:

  算数运算符

       关系运算符

       布尔运算符

       字符串运算符

       文本测试运算符

算数运算符

原生bash不支持简单的数学运算符,但是可以通过其它命令来实现。例如:awk 和 expr,其中expr最常用

运算符说明举例
+ 加法 `expr $a + $b` 结果为 30。
- 减法 `expr $a - $b` 结果为 -10。
* 乘法 `expr $a \* $b` 结果为  200。
/ 除法 `expr $b / $a` 结果为 2。
% 取余 `expr $b % $a` 结果为 0。
= 赋值 a=$b 将把变量 b 的值赋给 a。
== 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等。用于比较两个数字,不相同则返回 true。
  • [ $a != $b ] 返回 true。

 

 

 

 

 

 

 

 


 

 

#!/bin/bash
#简单算数运算符
a=100
b=10
echo "a = $a , b = $b"
c=`expr $a + $b`
echo "a + b is value :$c"
c=`expr $a - $b`
echo "a -b is value : $c"
c=`expr $a \* $b`
echo "a * b is value : $c"
c=`expr $a / $b`
echo "a / b is value :$c"
c=`expr $a % $b`
echo "a % b is value: $c"
if [ $a == $b ]
then
  echo "a == b : true"
else
 echo "a == b : false"
fi
if [ $a != $b ]
then
 echo "a != b :true"
else
 echo "a != b : false"
fi
输出结果:
a = 100 , b = 10
a + b is value :110
a -b is value : 90
a * b is value : 1000
a / b is value :10
a % b is value: 0
a == b : false
a != b :true

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

 

 

 

 

 

 


 

#!/bin/bash
#关系运算符
a=10
b=20
echo "-eq ,检测两个数是否相等"
if [ $a -eq $b ]
then
 echo "a 等于 b"
else
 echo a 不等于 b
fi

echo "-ne 检测两个数是否不相等"

if [ $a -ne $b ]
then
    echo  a不等于b
fi

echo "-gt 检测左边是否大于右边"

if [ $a -gt $b ]
then
  echo a大于b,-gt返回ture
fi

echo "-lt检测左边是否小于右边"
if [ $a -lt $b ]
then
    echo a小于b,-lt返回true
fi

echo -ge 左边大于等于右边

if [ $a -ge $b ]
then
    echo a大于等于b
fi

echo -le 左边小于等于右边

if [ $a -le $b ]
then
     echo "a 小于等于 b"
fi
输出:
-eq ,检测两个数是否相等
a 不等于 b
-ne 检测两个数是否不相等
a不等于b
-gt 检测左边是否大于右边
-lt检测左边是否小于右边
a小于b,-lt返回true
-ge 左边大于等于右边
-le 左边小于等于右边
a 小于等于 b

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!