简单的计算器,执行算术表达式。
概要
主要用途
参数 arg:算术表达式
返回值 当let
最后一个执行的表达式的计算结果为0时返回1
,否则返回0
。 当let
执行的表达式的除数为0时,返回1
并报错。
运算符优先级递减表
运算符
描述
id++, id--
变量后增量、变量后减量
++id, --id
变量预增量、变量预减量
-, +
正号、负号
!, ~
逻辑否、按位取反
**
幂运算
*, /, %
乘法、除法、取余
+, -
加法、减法
<<, >>
按位左移、右移
<=, >=, <, >
比较
==, !=
等于、不等于
&
按位与
^
按位异或
|
按位或
&&
逻辑与
||
逻辑或
expr ? expr : expr
条件运算符(三元运算符)
=, *=, /=, %=, +=, -=,
<<=, >>=, &=, ^=, |=
赋值
例子 1 2 3 4 5 6 7 # 尝试直接在终端中执行算术表达式(就像在python的IDLE)。 3+4 bash:3+4:command not found... # 换一种方式。 3 + 4 bash:3:command not found... # 看来不行。
1 2 3 4 5 6 # let 命令赋值。let a=3**4 echo ${a} # 显示81。 # ((...))和let 命令等效。 ((a=3**4))
1 2 3 4 5 # let 常用于变量赋值,而外部命令expr 可直接返回表达式的值。let 3+4 # 没有显示7。 # 执行后显示7,注意空格。 expr 3 + 4
1 2 3 4 5 6 7 8 9 10 11 12 # 条件表达式。 if ((8>4)); then echo '8 is greater than 4.' else echo 'error' fi # 注意空格。 if [[ 12 -le 10 ]]; then echo 'error' else echo '12 is greater than 10.' fi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 可以通过declare 命令设置整型属性的方法来进行算术运算。 # local 命令与此类似。# 没有指定整型属性,输出为字符串'a+b' 。 declare a=3 b=4 c c=a+b echo ${c} # 不过可以使用以下方式赋值。 c=$((a+b)) echo ${c} # 显示7 # 设置了整型属性就可以直接加了。 declare -i a=3 b=4 c c=a+b echo ${c} # 同上。 declare -i a a=2*3 echo ${a} # 显示6。
注意
该命令是bash内建命令,相关的帮助信息请查看help
命令。
执行算术计算的命令除了let
,还有外部命令expr
、bc
等。