我希望将bash脚本中的十进制数(循环索引数)转换为十六进制,以便由另一个命令使用。类似于:
for ((i=1; i<=100; i++))
do
a=convert-to-decimal($i)
echo "$a"
done
如何实现将变量 i 的值转换为一个带有四位十六进制标识符的十六进制数,存储在变量 a 中。例如,如果变量 i 的值为 100,那么变量 a 的值应该是 0x0064。
我希望将bash脚本中的十进制数(循环索引数)转换为十六进制,以便由另一个命令使用。类似于:
for ((i=1; i<=100; i++))
do
a=convert-to-decimal($i)
echo "$a"
done
如何实现将变量 i 的值转换为一个带有四位十六进制标识符的十六进制数,存储在变量 a 中。例如,如果变量 i 的值为 100,那么变量 a 的值应该是 0x0064。
printf -v a '0x%04x' $i
代替进程替换。 - Benjamin W.#
标志会自动添加它。因此,printf“%#06x”100
会给出0x0064
。唯一的问题是OP是否需要小写或大写十六进制数字。在后一种情况下,应使用X
说明符。 - TrueY这就是你要找的东西
对于 i 在 seq 1 100
中;
执行
printf '%x\n' $i
完成