Библиотека сайта rus-linux.net
7. Циклы for, while и until
В этом разделе Вы познакомитесь с циклами for, while и until.
Цикл for немного отличается от аналогов в других языках программирования. Прежде всего, он позволяет Вам проводить последовательные действия над "словами" в строке.
Цикл while выполняет кусок кода, когда проверяемое выражение - истина и останавливается только тогда, когда оно - ложь (или внутри исполняемого кода встречается явно заданное прерывание цикла).
Цикл until почти равносилен циклу while, только код выполняется, когда проверяемое выражение - ложь.
Если Вы считаете, что while и until очень похожи, Вы правы.
7.1 Пример цикла for
#!/bin/bash
for i in $( ls ); do
echo item: $i
done
Во второй строке мы объявляем i как переменную, которая получает различные значения, содержащиеся в $( ls ).
Третья строка при необходимости могла бы быть длиннее или там могло бы быть несколько строк перед done (4-я строка).
'done' (4-я строка) показывает, что код, в котором используется значение $i, заканчивается и $i получает новое значение.
Данный скрипт имеет совсем не большой смысл, более полезным применением цикла for было бы использование его для отбора только каких-то определённых файлов в предыдущем примере.
7.2 C-подобный for
fiesh предложил добавить эту форму цикла. Это цикл for, более похожий на for в языках C, Perl и т.п.
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
7.3 Пример цикла while
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done
Данный скрипт "эмулирует" хорошо известную (в языках C, Pascal, perl и т.д.) структуру 'for'.
7.4 Пример цикла until
#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done
Next Previous Contents