如何在 Bash 中强制对 printf 参数进行十进制解释而不是八进制

How to force decimal interpretation of printf's parameter in Bash instead of octal

我正在使用 printf

在 bash 脚本中格式化数字
printf "%04d" $input   # four digits width with leading zeros if shorter

如果 input="011" printf 假设值是八进制的并且 returns 0009 而不是 0011.

是否可以强制 printf 假设所有值都是十进制的?

使用 10#.

的基本说明符作为值的前缀
$ printf "%04d\n" "$input"
0009
$ printf "%04d\n" "$((10#$input))"
0011