如何在 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
我正在使用 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