2017-02-15 36 views
0

我知道如何像做循环顺序:庆典 - 为循环不同迭代

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

如果你想遍历一个已知的名单,你可以简单地存储的元素,空间分隔,在变量中,遍历是:

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

对于OP,'seq'只是产生这样的一个硬编码的列表。 – chepner