Bash 按位运算符

Bash bitwise operator

知道为什么下面的代码不起作用吗?

hex_var='a'
processed=((3 & $hex_var) | 8)

仍然不太了解 'Arithmetic Expansion'!

你的算术表达式是错误的。以下是您可以执行的操作:

hex_var=0xa
processed=$(( (3 & $hex_var) | 8 ))
echo $processed # yields 10

或者,按照 Gordon Davisson 的建议,您可以使用 # 符号来明确指定基数:

hex_var=a
processed=$(( (3 & 16#$hex_var) | 8 ))

参见: