2017-02-15 4 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

Для ОП, 'seq' просто генерации такого жестко запрограммированный список. – chepner

Смежные вопросы