我需要在循环中递增计数器。要求是这样的:
$ echo $x
0000001
$ x=$((x+1))
$ echo $x
2
但是,柜台应该是这样的:
0000001
0000002
0000003
0000004
0000005
0000006
0000007
0000008
0000009
0000010
0000011
答案 0 :(得分:2)
您想要typeset -Z
。
来自文档:
如果第一个非空白字符是数字且未设置-L选项,则右对齐并填充前导零。如果还设置了-L选项,则删除前导零。如果n非零,则定义字段的宽度,否则由第一次赋值的宽度确定。
$ typeset -Z 6 x
$ x=1
$ echo $x
>> 000001
$ (( x ++ ))
$ echo $x
>> 000002
答案 1 :(得分:1)
试试这个:
$ echo $x
0000001
$ x=$((x+1))
$ printf "%06d" $(echo "$x" | bc)
0000002
使用printf
,您可以格式化输出。现在,它也适用于前导零。