Пример 10-17. C-подобный синтаксис оформления цикла while

Пример 10-17. C-подобный синтаксис оформления цикла while

#!/bin/bash

# wh-loopc.sh: Цикл перебора от 1 до 10.

LIMIT=10

a=1

while [ "$a" -le $LIMIT ]

do

echo -n "$a "

let "a+=1"

done # Пока ничего особенного.

echo; echo

# +=================================================================+

# А теперь оформим в стиле языка C.

((a = 1)) # a=1

# Двойные скобки допускают наличие лишних пробелов в выражениях.

while (( a <= LIMIT )) # В двойных скобках символ "$" перед переменными опускается.

do

echo -n "$a "

((a += 1)) # let "a+=1"

# Двойные скобки позволяют наращивание переменной в стиле языка C.

done

echo

# Теперь, программисты, пишущие на C, могут чувствовать себя в Bash как дома.

exit 0

Стандартное устройство ввода stdin, для цикла while, можно перенаправить на файл с помощью команды перенаправления < в конце цикла.

until

Оператор цикла until проверяет условие в начале каждой итерации, но в отличие от while итерация возможна только в том случае, если условие ложно.

until [condition-is-true] do command... done

Обратите внимание: оператор until проверяет условие завершения цикла ПЕРЕД очередной итерацией, а не после, как это принято в некоторых языках программирования.

Как и в случае с циклами for/in, при размещении ключевого слова do в одной строке с объявлением цикла, необходимо вставлять символ ";" перед do.

until [condition-is-true] ; do