我是shell脚本的新手
我试图以下列方式在shell脚本中将两个十六进制数相乘。
initial= expr 0x10000 \* 0x22
echo $initial
运行脚本时,会出现以下错误。
expr: non-numeric argument
有人可以指出可能出现的错误吗?
答案 0 :(得分:3)
无需expr
,就像这样使用$(( ))
:
$ echo $((0x10000 * 0x22))
2228224
或者你可以像这样使用bc
,表示输入是十六进制(ibase
),所需的输出也是十六进制(obase
)(作为Adobe's deleted answer状态):< / p>
$ echo "ibase=16; obase=16; 10000*22" | bc
09 11 05 16 20
$ echo "ibase=16; 10000*22" | bc
2228224