前言
shell 是一种脚本语言。脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)。
正文
今天主要回顾一下shell脚本中的算术运算
算术运算
问题:现在有两个数a和b,需要计算a+b之和c,并将c打印出来
错误示范1:
a=10
b=20
# 这里计算a+b之和,错误示范1:c=a+b
c=a+b
echo "$a和$b的和为:$c"
结果为:
10和20的和为:a+b
错误示范2:
a=10
b=20
# 这里计算a+b之和,错误示范2:c=$a+$b
c=$a+$b
echo "$a和$b的和为:$c"
结果为:
10和20的和为:10+20
错误示范3:
a=10
b=20
# 这里计算a+b之和,错误示范3:c=$(a+b)
c=$(a+b)
echo "$a和$b的和为:$c"
结果为:
-bash: a+b: command not found
10和20的和为:
废话不说,现在直接给出正确的示范
示范1
a=10
b=20
let c=a+b
echo "c的值为$c"
结果如下:
c的值为30
示范2
a=10
b=20
val=`expr $a + $b`
echo "a + b : $val"
结果如下:
a + b : 30
示范3
a=10
b=20
c=$((a + b))
echo "Sum of $a and $b is: $c"
结果如下:
Sum of 10 and 20 is: 30
示范4
a=10
b=10
# 注意等号两边不能有空格
result=$[a+b]
echo "result結果为: $result"
结果如下:
result結果为: 20
补充:
下表列出了常用的算术运算符,假定变量a=10,变量b=20
运算符 | 说明 | 举例 |
---|---|---|
+ | 加法 | expr $a + $b 结果为30 |
- | 减法 | expr $a - $b 结果为-10 |
* | 乘法 | expr $a * $b 结果为200 |
/ | 除法 | expr $a / $b 结果为2 |
% | 取余 | expr $a % $b 结果为0 |
= | 赋值 | a=$b将变量b的值赋给a |
== | 相等。用于比较两个数字,相同则返回true | [ $a == $b ] 返回true |
!= | 不相等。用于比较两个数字,不相同则返回true | [ $a != $b ] 返回true |
注意:条件表达式要放在方括号之间,并且要有空格,例如[ a = = a== a==b ]是错误的,必须写成[ $a == $b ]