6.5 shell算术
评论 0
浏览 0
2023-01-26
shell允许计算算术表达式,作为shell的扩展之一,或者使用((
复合命令、let
内置命令或declare
内置命令的-i选项。
计算是在不检查溢出的固定宽度整数中完成的,尽管除以 0 会被捕获并标记为错误。 运算符及其优先级、结合性和值与 C 语言中的相同。 以下运算符列表按优先级相等的运算符级别进行分组。 级别按优先级递减的顺序列出。
id++ id--
变量后递增和后递减
++id --id
变量预递增和预递减
- +
一元减号和加号
! ~
逻辑和按位取反
**
求幂
* / %
乘法、除法、余数
+ -
加法、减法
<< >>
左右移位
<= >= < >
比较
== !=
相等与不相等
&
按位与
^
按位异或
|
按位或
&&
逻辑与
||
逻辑或
expr ? expr : expr
条件运算符
= *= /= %= += -= <<= >>= &= ^= |=
赋值
expr1 , expr2
逗号
允许Shell变量作为操作数;参数扩展在计算表达式之前执行。在表达式中,shell变量也可以通过名称来引用,而不使用参数扩展语法。在不使用参数扩展语法的情况下按名称引用时,为 null 或未设置的 shell 变量的计算结果为 0。当变量被引用时,或者当使用‘declare -i’给变量赋予integer
属性时,变量的值会作为一个算术表达式求值。空值的计算结果为 0。shell变量不需要打开integer
属性就可以在表达式中使用。
整数常量遵循C语言的定义,没有后缀或字符常量。以 0 开头的常量被解释为八进制数。 前导‘0x’或‘0X’表示十六进制。否则,数字采取[base#
]n的形式,其中可选的base是2到64之间的十进制数字,表示算术基数,而n是该基数的一个数字。 如果省略了base#
,则使用基数10。当指定n时,如果需要一个非数字,大于9的数字由小写字母、大写字母、‘’和‘_’依次表示。 如果base小于或等于36,小写字母和大写字母可以互换使用,表示10到35之间的数字。
运算符按优先顺序进行评估。 括号中的子表达式首先被评估,并且可以覆盖上面的优先级规则。
最后更新2023-02-20
0 个评论
上一篇:
6.4 Bash的条件表达式
下一篇:
6.6 别名