我正在尝试循环浏览一个启动的整数列表:
start=000
for i in $(seq -w $start 48 006);
但是,当我尝试以上代码时,循环似乎循环一次,然后退出。
我需要修改什么?(领先的零需要留下)
您可以尝试以下内容。
start=0
diff=6
for i in $(seq $start $diff 48);
do
printf '%03dn' $i
done
输出将如下。
000
006
012
018
024
030
036
042
048
在OP的尝试代码中问题:我相信您在seq
中给出了错误的语法,应该是startpoint
,然后increment_number
,然后endpoint
EG->(seq(start_point increment end_point)
)。由于您给了他们错误,因此它仅在循环中打印一次。
在您的尝试中,它的起点为0,应直到6,差48,这是不可能的,因此它仅打印出非常公平的第一个整数值。
编辑:根据@cyrus Sir的评论,在此不使用seq
的情况下添加bash indendin解决方案。
for ((i=0; i<=48; i=i+6)); do printf '%03dn' $i; done
seq
的输入开始,增量和完成。
您已经以完成的方式逆转增量:seq -w $start 48 006
表示从零开始,增量升至48,以完成6。简单的修复是seq -w $start 6 48
。注意:不需要006,只有6个,因为seq
将数字的宽度均衡到两个位置。