首页 > 解决方案 > 使用 Seq 和变量遍历列表

问题描述

我正在尝试遍历一个整数列表,如下所示:

start=000
for i in $(seq -w $start 48 006);

但是,当我尝试上面的这段代码时,循环似乎循环一次然后退出。

我需要修改什么?(前导零需要保留)

标签: bashshellsyntaxseq

解决方案


请您尝试以下操作。

start=0
diff=6
for i in $(seq $start $diff 48);
do
  printf '%03d\n' $i
done

输出如下。

000
006
012
018
024
030
036
042
048

OP 尝试过的代码中的问题: 我相信您在其中给出了错误的语法,然后应该seq是eg-->()。由于您错误地给出了它们,因此它只在循环中打印一次。startpointincrement_numberendpointseq(start_point increment end_point)

在您的尝试中,它以 0 为起点,并且应该运行到 6,相差 48,这是不可能的,因此它只打印第一个整数值,这很公平。



编辑:根据@Cyrus 先生的评论,在此处添加 BASH 内置解决方案而不使用seq.

for ((i=0; i<=48; i=i+6)); do printf '%03d\n' $i; done

推荐阅读