我想写一个bash scritpt,它会在前面加上一个十六进制字符的0填充,例如.32b,ae2等它只适用于整数,但不适用于混合字符和数字.我用了
printf "%04d$a\n" . a=ae2.
Run Code Online (Sandbox Code Playgroud)
我想要发生的是这个0ab3,003s,000a,002a填充
我建议这样:
printf '%04x\n' "0x${a}"
Run Code Online (Sandbox Code Playgroud)
xin format specification代表十六进制整数(小写).并且0x在参数bash中没有前缀会抱怨这ae2是一个无效的数字.