如何通过Ubuntu中的脚本将十进制数转换为十六进制数

时间:2015-04-04 11:46:53

标签: linux bash hex decimal converter

我在Ubuntu中使用bash文件,我在这个文件中写了一个可执行代码,必须使用一些十六进制数字。

但我只有十进制数,所以我想通过某些命令自动将十进制数转换为十六进制数。

这是我的代码的一部分:

x=1
while [ $x -lt 255 ];do
$tc filter add dev eth0 protocol ip parent 10:0 prio 5 u32 ht 2:$x: \
match ip dst 192.168.67.$x flowid 10:$x
x=$(( $x + 1 ))
done

在本节" u32 ht 2:$ x:"在我的代码" $ x"必须是十六进制形式,其他部分必须是十进制形式。但我的问题是十六进制形式。如何在我的代码中转换它并使用它?

2 个答案:

答案 0 :(得分:2)

使用bash内置命令将十进制数转换为十六进制:

dec=123
printf -v hex "%x" $dec
echo $hex

输出:

7b

答案 1 :(得分:0)

您可以使用bc

dec=123
bc <<< "obase=16;$dec"

输出:

7B