如何在bash中设置变量,因此如果数字较小,它总是用引导零填充。
对于Eg。
如果我将变量'a'排版为5位并给出值78,则输出应为00078
已经有各种各样的答案,告诉你如何去做,就像使用
一样
printf -v a "%05d" 78;
等,但请注意,如果我们这样做,我们只改变输出一次。
EG。
printf -v a "%05d" 78
echo $a
a=32
echo $a;
输出:
00078
32这里没有填充
在ksh中,有一个名为typeset的选项,就像这样使用了
typeset -Z5 gen=78;
echo $gen;
gen=32;
echo $gen;
输出:
00072
00032
但是对于bash -Z,选项不适用于排版。
在一个论坛上,一个答案声称在bash中使用“declare”而不是“typeset”,但是ksh的-Z选项,即使在声明中也没有排版。
的问题
有没有可行的解决方案,就像我设置变量的atttribute一样。或者我每次都需要调整输出(比如使用printf)。
答案 0 :(得分:1)
你可以做
a=78
astr=$(printf "%05d" a)
echo $astr