6.5 Shell 算术计算

时间:2024-01-17 12:32:02

6.5 Shell Arithmetic


shell允许在其内计算表达式,可以通过以下方式使用:((中,let和带-i选项的declare命令中。

只能计算固定长度的整数,而且不会检查溢出,除0可以捕获到且标记为错误。 操作符、优先级、结合性及其值完全同c语言中一样。下面的操作符按优先级分组,优先级按从第到高排列:

id++ id--   变量后+1,和后-1

++id --id  变量先+1,和先-1

- +      一元减号和加号

! ~       逻辑非,按位非

**        幂

* / %      乘号,除号,求余数

+ -        加号,减号

<< >>      左移位,右移位

<= >= < >    比较

== !=      相等,不等

&         按位与

^         按位异或

|        按位或

&&       逻辑与

||       逻辑或

expr ? expr : expr  条件操作符

= *= /= %= += -= <<= >>= &= ^= |=  赋值

expr1 , expr2  逗号表达式

shell变量允许作操作数;参数扩展会在表达式被计算前进行。表达式里的shell变量可以直接使用变量名,而不必按shell变量的引用语法来用。也就是说,shell变量名在表达式里前面不必跟$。 A shell variable that is null or unset evaluates to 0 when referenced by name without using the parameter expansion syntax.