bash - for循环不同的迭代

时间:2017-02-15 14:48:12

标签: bash shell for-loop

我知道如何执行顺序for循环:

for i in $(seq 0 63)
do
  echo $i
done

这将打印0-63。 但是,如果我想要某些数字只能像0,5,25,43,44,51,54那样循环。

我知道我可以做到以下几点:

for i in $(seq 0 63)
do
  if [ "$i" -eq 0 ] || [ "$i" -eq 5 ] || [ "$i" -eq 25 ] || [ "$i" -eq 43 ] || [ "$i" -eq 44 ] || [ "$i" -eq 51 ] || [ "$i" -eq 54 ]; then
    echo $i
  fi
done

但结果将是它仍然经历了那些循环迭代,并且不是一种有效的解决方案。

我可以用seq来描述这些特定数字0,5,25,43,44,51,54吗?

1 个答案:

答案 0 :(得分:1)

如果你想迭代一个已知的列表,你可以简单地将空格分隔的元素存储在一个变量中并循环遍历:

nums="0 5 25 43 44 51 54";
for i in $nums;
do echo $i;
done;