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