我只想有人解释什么是“操作数”,因为我只是不明白它。这是我阅读本文的背景:
Shell 变量允许为操作数;参数扩展在计算表达式之前执行。在表达式中,shell 变量也可以通过名称引用,而不使用参数扩展语法。
答案1
一个操作员是对一个或多个执行的操作操作数。
例如,在公式 中3 + 4
,加号+
是运算符,值3
和4
是操作数。
关于你的报价,“允许 Shell 变量作为操作数",这意味着 shell 变量可以用在这样的公式中, 。从语法上讲,这将在脚本a + 4
中表示为,其值将被获取为。空格是可选的:sh
(( a + 4 ))
$(( a + 4 ))
a=3
b=$((a+4))
echo "b=$b" # outputs b=7
警告:如果可能的话,请避免在内部使用$var
构造,因为这些构造是在考虑表达式本身之前评估的。$(( … ))
例子:
a='4+3'; echo "$(( a * 2 ))" # returns "14", i.e. (4+3)*2
但
a='4+3'; echo "$(( $a * 2 ))" # returns "10", i.e. 4+3*2
类似的扩展适用于a=
(未定义或空),这会导致0*2
第一个表达式出现,但*2
第二个表达式出现(错误)。