Цикл for
Это основной используемый цикл. И он сильно отличается от аналогов в других языках программирования. Во-первых, это не цикл со счётчиком. А во-вторых, это цикл, у которого на каждой итерации, переменная-аргумент цикла, последовательно, одно за другим, принимает значение из списка, поэтому он называется циклом перебора. То есть чем-то он похож на foreach в java. Цикл имеет вид:
for <переменная-аргумент> in <список>
do
<действия>
done
Список сдесь представляет собой строку, содержащую список параметров, разделённых пробелом, знаком перевода строки или табуляции. Естественным образом это может быть и переменая такого же вида. То есть выглядеть это может так:
#!/bin/bash
for ITEM in 0 1 2 3 4
do
echo -n "$ITEM "
done
или так:
#!/bin/bash
LIST="0 1 2 3 4"
for ITEM in $LIST
do
echo -n "$ITEM "
done
В обоих этих случаях цикл отработает абсолютно одинаково. То есть, переменная $ITEM поочерёдно принимает значения от 0 до 4, и выводится на экран.
Цикл while
Одним лишь циклом перебора нам не обойтись, ведь он подойдёт далеко не всегда. Во большинстве случаев нам необходим цикл с условием. И это цикл while.
while <условие>
do
<действия>
done
Цикл выполняется до тех пор пока условие истинно. Роль условия в нём играют те же самые операторы сравнения, которые используются в операторе ветвления if. Из цикла также можно выходить командой break, или переходить к следующей итерации - continue.
В качестве примера, рализуем с помощью цикла while цикл со счётчиком.
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]
do
echo "Current value: $COUNTER"
COUNTER=`expr $COUNTER + 1`
done
В этом примере, цикл выполнит десять итераций. На каждой итерации, он сначала будет выводить значение счётчика, а затем увеличивать его на единицу с использованием команды expr.
Цикл until
Этот цикл отличается от предыдущего только лишь тем, что выполняется до тех пор пока условие ложно. При этом он также является циклом с предусловием, то есть, оно проверяется перед итерацией.
until <условие>
do
<действия>
done
Наверх
|