在 bash 脚本中将十进制转换为十六进制

Converting decimal to hexadecimal in bash script

我想将 bash 脚本中的十进制数(循环索引号)转换为十六进制数以供另一个命令使用。类似于:

for ((i=1; i<=100; i++))
do

     a=convert-to-decimal($i)
     echo "$a"

done

其中 a 应该是具有四位数字和十六进制标识符的十六进制。例如,如果 i 的值是 100,那么 a 的值应该是 0x0064。怎么做?

您可以使用 printf.

$ printf "0x%04x" 100
0x0064

在您的示例中,您可能会使用 a="$(printf '0x%04x' $i)"

这就是您要找的

我在seq 1 100; 做 printf '%x\n' $i 完成