概述
Bash shell 使用 let
、(( ))
和 [ ]
执行基本的算术操作。命令 expr
和 bc
可以用来执行高级操作。
let
命令
可以使用 let
命令进行一些基本的算术操作。当使用 let
时,在引用变量值不需要在变量名前添加 $
符号。例如:
a=1
b=3
let result=a+b+3
echo $result
注:不支持浮点数运算。可以进行自加(
let num++
)、自减(let num--
)操作。
[ ]
操作符
操作符 [ ]
的使用同 let
命令一样,语法格式如下:
num1=3
num2=4
result=$[ num1 + num2 ]
echo $result
注意:
- 也不支持浮点数运算。
[ ]
内对空格没有强制要求。即$[ 1 + 2 ]
、$[ 1+2 ]
、$[1+2]
都是可以的。- 在
[ ]
中引用变量的值既可以加$
符号也可以不加。如$[ num1 + num2 ]
和$[ $num1 + $num2 ]
都是可以的。
(( ))
操作符
操作符 (( ))
使用的语法格式如下:
num1=3
num2=4
result=$(( num1 + num2 ))
echo $result
注意:
- 也不支持浮点数运算。
(( ))
内对空格也没有要求。$((num1+num2))
、$((num1 + num2))
、$(( num1 + num2 ))
都是可以的。- 在
(( ))
中引用变量的值既可以加$
符号也可以不加。如$(( num1 + num2 ))
和$(( $num1 + $num2 ))
都是可以的。
expr
命令
expr
命令的格式如下:
num=13
result=$(expr $num + 5)
# 或者
# result=`expr $num + 5`
echo $result
注意:
- 也不支持浮点数运算。
$()
表示获取expr
命令的执行结果。expr
命令后面跟的运算式对空格有要求。expr $num+5
是错误的。- 引用变量的值必须在变量名前面使用
$
符号。
bc
命令
bc
命令可以用于数学运算,支持浮点数运算并使用一些高级函数。基本使用如下:
num=12
result=$(echo "$num*1.5" | bc)
echo $result