在带有字符的数字上填充0上的bash脚本

err*_*467 4 bash shell

我想写一个bash scritpt,它会在前面加上一个十六进制字符的0填充,例如.32b,ae2等它只适用于整数,但不适用于混合字符和数字.我用了

printf "%04d$a\n" .  a=ae2.   
Run Code Online (Sandbox Code Playgroud)

我想要发生的是这个0ab3,003s,000a,002a填充

Yoo*_* N. 5

我建议这样:

printf '%04x\n' "0x${a}"
Run Code Online (Sandbox Code Playgroud)

xin format specification代表十六进制整数(小写).并且0x在参数bash中没有前缀会抱怨这ae2是一个无效的数字.