前言
在shell脚本中,所有的变量默认都是字符串存储,操作也是按照字符串进行处理的,但我们不可避免的需要对各中数值进行算术运算,如算术的相加减,那么这时怎么处理呢?
在shell脚本中,我们要实现对数值的算术运行,就要用到一下三种命令方式:
1、let 命令
2、(())命令
3、expr 表达式
let命令
let命令类似于c语言中的算术运行,直接进行数值相加减即可,如:
num1=90
num2=80
let num=num1+num2
echo "相加和为:$num"
(())命令
使用两个小括号进行算术运行,小括号内像正常的数学运算,即直接进行数值相加减即可,也不用,最外层取值才要加美元符号,如下:
num1=90
num2=80
echo "相加和为:$((num1+num2))"
expr 表达式
使用expr 表达式进行算术运算,小括号内必须运算符号必须有空格,同时小括号内的变量需取其值来进行运算,如下:
num1=90
num2=80
expr $num1 + $num2
为了取得整个 expr 表达式的值,最后我们需要使用倒引号或$()的形式,如下:
echo "使用expr命令:`expr $num1 + $num2`"
echo "使用expr命令:$(expr $num1 + $num2)"
注意:倒引号与$()等价的。
演示示例:
[root@Centos8 shell_scripy]# cat let_expr.sh
#!/bin/bash
num1=89
num2=100
let num=num1+num2
echo "使用let命令相加:$num"
echo -n '使用(())命令相加:'
echo "$((num1+num2))"
echo "使用expr命令:`expr $num1 + $num2`"
echo "使用expr命令:$(expr $num1 + $num2)"
总结:
算术运算有三种命令方式
num1=89
num2=100
let num=num1+num2 #第一种
echo "相加和为:$num"
echo "相加和为:$((num1+num2))" #第二种
echo "使用expr命令:`expr $num1 + $num2`" #第三种,注意加号有空格
echo "使用expr命令:$(expr $num1 + $num2)" #第三种