如何在Bash中增加零填充int

Jua*_*uan 8 bash

我有一组循环记录.这个号码的范围从0000001到0089543,可以拨打UIDX.

如果我尝试类似的东西:

for ((i=0; i< 0089543; i++)); do
    ((UIDX++))
done
Run Code Online (Sandbox Code Playgroud)

计数器增量1,2,3,4而不是我需要的0000001,0000002 ......

什么是填补领先零的最佳方法?

Sea*_*ean 11

使用该printf命令格式化带前导零的数字,例如:

for ((i = 0; i < 99; ++i)); do printf -v num '%07d' $i; echo $num; done
Run Code Online (Sandbox Code Playgroud)

来自man bash:

printf [-v var] format [arguments]
在格式控制下将格式化参数写入标准输出.-v选项使输出分配给变量var而不是打印到标准输出.


pfn*_*sel 5

Bash 4有解决此问题的好方法:

for i in {0000000..0089543}; do
    echo $i
done
Run Code Online (Sandbox Code Playgroud)