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

Abu*_*que 6 linux bash hex decimal

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

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

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

done
Run Code Online (Sandbox Code Playgroud)

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

Wan*_*uta 4

您可以使用printf

$ printf "0x%04x" 100
0x0064
Run Code Online (Sandbox Code Playgroud)

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

  • 或者使用“printf -va '0x%04x' $i”代替进程替换。 (2认同)