Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Зачет по UNIX.docx
Скачиваний:
7
Добавлен:
02.08.2019
Размер:
50.16 Кб
Скачать

16. Циклы for in, генерация последовательностей

for arg in [list]

do

команда(ы)...

done

Элементы списка могут включать в себя шаблонные символы.

Есл ключевое слово do находится в одной строке со словом for, то после списка аргументов (перед do) необходимо ставить точку с запятой.

for arg in [list] ; do

Цикл for обеспечивает ещё одну возможность многократного выполнения блоков. он отличается от цикла while только тем, что изменяется в самойуправляющей конструкции, а не внутри блока команд. Цикл выполняется до тех пор, пока проверяемое условие остаётся истинным.

общая форма конструкции for выглядит так:

for ( инициалицация; условие; приращение ) { блок }

Условная часть цикла for в действительности состоит из трёх компонентов.

Инициализация выполняется всего один раз и определяет начальное значение управляющей переменной цикла.

Условие проверяется в начале каждой интерпритации и определяет, должена ли выполняться текущая интерпритация или нет.

Приращение определяет изменение состояния управляющей переменной при каждой интерпритации.

следующий пример демонстрирует простейший случай применения цикла for:

for ( $i=0; $i<=3; $i++) { echo "$i" }

Выполнение этого фрагмента даёт следующий результат.

1

2

3

В этом примере управляющей переменной $i инициализируется значением 1. Условие заключается в том, что цикл продолщается до тех пор, пока $i не превысит 3. При каждой интерпритации значение $i увеличивается на 1. В результате команда echo выполняется 3 раза, каждый раз выводя текущее $i .

Этот пример можно записать в другом виде, но с теми же результатами:

for ( $i=1; $i<=3; echo "$i", $i++)

Вы можете инициализировать несколько переменных одновременно, разделяя команды запятыми:

for ( $x=0,y=0; $x+$y<100; $x+=15)

В управляющих конструкциях цикла for могут отсутствовать любые компоненты. Например вы можете передать ранее инициализированную переменную прямо в цикл, не присваивая ей определённого начального значения. Возможны и другие ситуации - например, приращение переменной цикла может осуществляться в зависимости от некоторого условия, определяемого в цикле. в этом случае приращение не должно указываться в управляющем выражении.

17. Работа со строками и столбцами, особенности и применение команд cut, awk, read, head, tail

cut Предназначена для извлечения отдельных полей из текстовых файлов. Напоминает команду print $N в awk, но более ограничена в своих возможностях. В простейших случаях может быть неплохой заменой awk в сценариях. Особую значимость, для команды cut, представляют ключи -d (разделитель полей) и -f (номер(а) поля(ей)).

Head Выводит начальные строки из файла на stdout (по-умолчанию -- 10 строк, но это число можно задать иным). Эта команда имеет ряд интересных ключей.

tail Выводит последние строки из файла на stdout (по-умолчанию -- 10 строк). Обычно используется для мониторинга системных журналов. Ключ -f, позволяет вести непрерывное наблюдение за добавляемыми строками в файл.

Значение, присвоенное командой read переменной variable, будет заменять $variable где бы она не встречалась в программе пользователя. Если программа выполняет команду echo до команды read, то она сможет отобразить только:

Type in ...

Команда read будет ждать до тех пор, пока вы не введете строку символов и нажмете клавишу <CR>, тем самым присваивая строку переменной.