【注】具体详解参见 help 手册。

1. 简介

Linux Shell 内建命令用于估算算数表达式。估算的计算以定宽的整数完成,不带溢出检测,但除 0 会报错。

2. 格式

1
let ARG [ARG ...]

其中,ARG 参数会被 let 作为算数表达式来进行估值。ARG 中的算术操作符列表按照优先级由高到低给出如下:

【注】如果最后一个 ARG 估值为 0,则返回 1;否则返回 0 。

操作符 说明
( ) 圆括号内为子表达式,优先进行估值运算
id++, id-- 变量后置加、减
++id, --id 变量前置加、减
-, + 单目运算符取负、正
!, ~ 逻辑取反、位取反
** 指数
*, /, % 乘法、除法、取余
+, - 加法、减法
<<, >> 左移、右移
<=, >=, <, > 比较
==, != 等于、不等于
& 按位与
^ 按位异或
` `
&& 逻辑与
`
expr ? expr : expr 条件表达式(同 C 语言)
=, *=, /=, %= 赋值
+=, -=, <<=, >>= 赋值
&=, ^=, ` =`

【注】Shell 变量可以作为操作符的操作数;在 ARG 中,变量会被强制转换为定宽的整数(即使变量未打开整数属性)。