我想写一个bash scritpt,它会在前面加上一个十六进制字符的0填充,例如。 32b,ae2等它只适用于整数,但不适用于混合字符和数字。我用了
printf "%04d$a\n" . a=ae2.
我想要发生的事情就像这个0ab3,003s,000a,002a padding
答案 0 :(得分:5)
我会建议:
printf '%04x\n' "0x${a}"
格式规范中的 x
代表十六进制整数(小写)。如果参数bash中没有0x
前缀,则会抱怨ae2
是无效的数字。