我需要使用shell脚本将数字从十六进制形式转换为十进制形式
例如 :
convert()
{
...
echo x=$decimal
}
Run Code Online (Sandbox Code Playgroud)
结果:
convert "0x148FA1"
x=1347489
Run Code Online (Sandbox Code Playgroud)
怎么做?
小智 9
您可以通过许多不同的方式进行转换,所有这些都在bash中,并且相对容易.
要将数字从十六进制转换为十进制:
$ echo $((0x15a))
346
$ printf '%d\n' 0x15a
346
$ perl -e 'printf ("%d\n", 0x15a)'
346
$ echo 'ibase=16;obase=A;15A' | bc
346
Run Code Online (Sandbox Code Playgroud)
你可以查看这个链接.从根本上下面的代码将帮助您.
h2d(){
echo "ibase=16; $@"|bc
}
d2h(){
echo "obase=16; $@"|bc
}
Run Code Online (Sandbox Code Playgroud)
它是纯shell脚本解决方案.