一:shell中对整数和浮点数的运算
常用的运算符号
加法+ 减法 - 乘法* 除法/ 求余%
+= -= *= /= %=
1.整数的运算
(1).使用expr命令(注意:要求操作数和操作数之间用空格隔开,否则只会打印字符串)
expr 1 + 1
expr 2 - 1
expr 2 \* 2
expr 2 / 1
expr 1 % 6
例如执行:#! /bin/bash
num=$(expr 1 + 1)
echo $num
(2).使用$[]和使用$(())命令
echo $[1+1]
echo $[2-1]
echo $[2*2]
echo $[5/2];//舍弃小数
echo $[5%2]
echo $[3**2]
同理:num=1,num1=2;echo $((num+num1)) #这里变量中不需要用$符号
2.浮点数的运算
1.bc:一款高精度计算语言
2.bc支持算数运算,逻辑运算,比较运算
3.支持批处理和以管道方式处理表达式计算
例:
(1).直接在终端输入bc即可运算
(2).在shell脚本中可使用如下命令:
num=$(echo "scale=2;2.03+2.04"|bc) #scale表示小数位数
echo $num
3.关系运算(使用[],注意[]中变量要加空格)
-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
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