
- •Выполнение работы
- •1. Выполнение команд
- •2. Получение подсказки
- •3. Сохранение результатов
- •4. Создание и редактирование текстовых файлов
- •4. Создание и редактирование сценариев
- •5. Задание
- •Выполнение работы
- •Команда grep
- •Команда awk
- •Разработка по
- •Задание
- •Выполнение работы
- •Задание
- •Выполнение работы
- •Условный оператор
- •Задание
- •Выполнение работы
- •1. Задание
Условный оператор
Условные операторы предоставляют возможность решить, выполнять действие или нет; решение принимается при вычислении значения выражения.
Существует большое количество форм условных операторов. Элементарная форма - это
if выражение then оператор
,где 'оператор' выполняется только в том случае, если 'выражение' имеет значение "истина". '2<1' - это выражение, имеющее значение "ложь", в то время как '2>1' - "истина".
Существуют другие формы условных операторов, такие как:
if выражение then оператор1 else оператор2.
Здесь 'оператор1' выполняется, если 'выражение'- истина; в противном случае, выполняется 'оператор2'.
Синтаксис:
Элементарная конструкция оператора 'if' в bash выглядит следующим образом:
if [выражение];
then
code if 'выражение' is true.
fi
Пример: элементарный образец условного оператора if .. then
#!/bin/bash
if [ "foo" = "foo" ]; then
echo-выражение вычислилось как истина
fi
Если выражением внутри квадратных скобок является истина, то выполняемый код находится после слова 'then' и перед словом 'fi', которое обозначает конец исполняемого при выполнении условия кода.
Пример: элементарный пример условного оператора if .. then ... else
#!/bin/bash
if [ "foo" = "foo" ]; then
echo-выражение вычислилось как истина
else
echo-выражение вычислилось как ложь
fi
Пример: условные операторы с переменными
#!/bin/bash
T1="foo"
T2="bar"
if [ "$T1" = "$T2" ]; then
echo-выражение вычислилось как истина
else
echo-выражение вычислилось как ложь
fi
Цикл
Цикл for предоставляет возможность выполнять последовательные действия над "словами" в строке.
Цикл while выполняет кусок кода, если тестируемым выражением является истина; и останавливается при условии, если им является ложь (или внутри исполняемого кода встречается явно заданное прерывание цикла).
Пример цикла for
1: #!/bin/bash
2: for i in $( ls ); do
3: echo item: $i
4: done
Во второй строке i представляется в качестве переменной, которая получает различные значения, содержащиеся в $( ls ).
При необходимости третья строка могла бы быть длиннее; или там могло бы находиться несколько строк перед done (4-я строка).
'done' (4-я строка) показывает, что код, в котором используется значение $i, заканчивается и $i получает новое значение.
В Linux имеется программа seq, которая воспринимает в качестве аргументов два числа и выдает последовательность всех чисел, расположенных между заданными. С помощью этой команды можно заставить for в bash работать точно так же, как аналогичный оператор работает в обычных языках программирования. Для этого достаточно записать цикл for следующим образом:
for a in $( seq 1 10 ) ; do
cat file_$a
done
Эта команда выводит на экран содержимое 10-ти файлов: "file_1", ..., "file_10".
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
Пример цикла while:
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done