如何在shell脚本中乘以两个十六进制数

时间:2014-07-10 08:24:33

标签: shell

我是shell脚本的新手

我试图以下列方式在shell脚本中将两个十六进制数相乘。

initial= expr 0x10000 \* 0x22
echo $initial

运行脚本时,会出现以下错误。

expr: non-numeric argument

有人可以指出可能出现的错误吗?

1 个答案:

答案 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