我在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"必须是十六进制形式,其他部分必须是十进制形式。但我的问题是十六进制形式。如何在我的代码中转换它并使用它?
答案 0 :(得分:2)
使用bash内置命令将十进制数转换为十六进制:
dec=123
printf -v hex "%x" $dec
echo $hex
输出:
7b
答案 1 :(得分:0)
您可以使用bc
dec=123
bc <<< "obase=16;$dec"
输出:
7B