我有一组循环记录.这个号码的范围从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而不是打印到标准输出.
Bash 4有解决此问题的好方法:
for i in {0000000..0089543}; do
echo $i
done
Run Code Online (Sandbox Code Playgroud)