В этой главе мы обсудим циклы оболочки в Unix. Цикл — это мощный инструмент программирования, который позволяет многократно выполнять набор команд. В этой главе мы рассмотрим следующие типы циклов, доступных программистам оболочки:
Вы будете использовать разные циклы в зависимости от ситуации. Например, цикл while выполняет данные команды, пока данное условие не останется истинным; цикл before выполняется до тех пор, пока данное условие не станет истинным.
Как только у вас будет хорошая практика программирования, вы приобретете опыт и тем самым начнете использовать соответствующий цикл в зависимости от ситуации. Здесь циклы while и for доступны в большинстве других языков программирования, таких как C , C ++, PERL и т. Д.
Вложенные петли
Все циклы поддерживают концепцию вложенности, что означает, что вы можете поместить один цикл в другой, подобный одному или другим циклам. Эта вложенность может увеличиваться неограниченное количество раз в зависимости от ваших требований.
Вот пример вложения цикла while. Другие циклы могут быть вложены в зависимости от требований программирования аналогичным образом —
Вложение в то время как петли
Можно использовать цикл while как часть тела другого цикла while.
Синтаксис
while command1 ; # this is loop1, the outer loop do Statement(s) to be executed if command1 is true while command2 ; # this is loop2, the inner loop do Statement(s) to be executed if command2 is true done Statement(s) to be executed if command1 is true done
пример
Вот простой пример вложения цикла. Давайте добавим еще один цикл обратного отсчета внутри цикла, который вы использовали для подсчета до девяти —
#!/bin/sh a=0 while [ "$a" -lt 10 ] # this is loop1 do b="$a" while [ "$b" -ge 0 ] # this is loop2 do echo -n "$b " b=`expr $b - 1` done echo a=`expr $a + 1` done
Это даст следующий результат. Важно отметить, как здесь работает echo -n . Здесь опция -n позволяет echo избегать печати символа новой строки.