Next Previous Contents

6. Условные операторы

Условные операторы предоставляют Вам возможность решить, выполнять действие или нет; решение принимается при вычислении значения выражения.

6.1 Просто теория

Существует большое количество форм условных операторов. Элементарная форма - это if выражение then оператор, где 'оператор' выполняется только в том случае, если 'выражение' имеет значение "истина". '2<1' - это выражение, имеющее значение "ложь", в то время как '2>1' - "истина".

Существуют другие формы условных операторов, такие как: if выражение then оператор1 else оператор2. Здесь 'оператор1' выполняется, если 'выражение'- истина; в противном случае, выполняется 'оператор2'.

Ещё одной формой условных операторов является: if выражение1 then оператор1 else if выражение2 then оператор2 else оператор3. В данной форме добавляется только последовательность "ELSE IF 'выражение2' THEN 'оператор2'", заставляющая 'оператор2' выполняться, если 'выражение2' имеет значение "истина". Всё остальное соответствует Вашему представлению об этом (см. предыдущие формы).

Несколько слов о синтаксисе:

Элементарная конструкция оператора 'if' в bash выглядит следующим образом:

if [выражение];

then

code if 'выражение' is true.

fi

6.2 Пример: элементарный образец условного оператора if .. then

            #!/bin/bash
            if [ "foo" = "foo" ]; then
               echo-выражение вычислилось как истина
            fi

Если выражением внутри квадратных скобок является истина, то выполняемый код находится после слова 'then' и перед словом 'fi', которое обозначает конец исполняемого при выполнении условия кода.

6.3 Пример: элементарный пример условного оператора if .. then ... else

            #!/bin/bash
            if [ "foo" = "foo" ]; then
               echo-выражение вычислилось как истина
            else
               echo-выражение вычислилось как ложь
            fi

6.4 Пример: условные операторы с переменными

            #!/bin/bash
            T1="foo"
            T2="bar"
            if [ "$T1" = "$T2" ]; then
                echo-выражение вычислилось как истина
            else
                echo-выражение вычислилось как ложь
            fi


Next Previous Contents