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

How convert decimal number to Hexadecimal number by a script in Ubuntu

我在 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”必须是十六进制格式,而在其他部分中必须是十进制格式 form.but 我的问题是十六进制格式。我如何在我的代码中转换它并使用它?

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

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

输出:

7b

您可以使用bc

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

输出:

7B