目录

shell 算术表达式

在bash中编写算术表达式

bash 中计算算术表达式有 expr 命令、(( x = expression )) 和 $(( expression )) 三种方式,其中 expr 需要注意 * 号的转义。此外还可通过 declare -i 显式声明整型变量,使其赋值自动按算术求值。

一、方式一 命令expr

命令expr打印算术表达式的结果,但必须小心 * 号

1
2
3
expr 3 + 12      # 打印 15
expr 3 * 12      # (probably) crashes: * 需要进行转义,这行语句会执行报错 
expr 3 \* 12     # 打印 36

二、方式二 (( assignable = expression ))

1
2
(( x = 3 + 12 )); echo $x    # 打印 15
(( x = 3 * 12 )); echo $x    # 打印 36

三、方式三

1
2
echo $(( 3 + 12 ))   # 打印 15
echo $(( 3 * 12 ))   # 打印 36

四、指定类型

虽然隐式声明变量是bash中的规范,但可以显式声明变量并为其指定类型

指定整型

1
2
3
4
5
6
7
8
9
declare -i number
number=2+4*10
echo $number        # 打印 42

another=2+4*10
echo $another       # 打印 2+4*10

number="foobar"
echo $number        # 打印 0