知道为什么下面的代码不起作用吗?
hex_var='a'
processed=((3 & $hex_var) | 8)
仍然对“算术扩展”了解不多!
最佳答案
你的算术表达式是错误的。您可以执行以下操作:
hex_var=0xa
processed=$(( (3 & $hex_var) | 8 ))
echo $processed # yields 10
或者,按照 Gordon Davisson 的建议,您可以使用 #
表示法显式指定基数:
hex_var=a
processed=$(( (3 & 16#$hex_var) | 8 ))
参见:
关于Bash 按位运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48896433/