Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерные сети / Комп сети 4_shell.ppt
Скачиваний:
37
Добавлен:
22.02.2016
Размер:
231.42 Кб
Скачать

Пример.

list = 'world_1 world_2 world_3 world_4' for VAL in $list

do echo $VAL done echo 'End of list'

На экран будет выведено:

world_1

 

world_2

 

world_3

 

world_4

 

End of list

61

 

Б) for без in

Структура for может применяться и без ключевого слова in.

for name

do do_list done

В этом случае do_list выполняется один раз для каждого позиционного параметра (аргумента) интерпретатора shell. Команда for name эквивалентна команде

for name in $*.

62

Например, необходимо инвертировать порядок списка аргументов.

Для этого необходимо выполнить: list = ''

for arg

do list = "$arg $list" done

echo $list

Если интерпретатор shell запускался с параметрами 1 2 3 4 5, то будет выдано

5 4 3 2 1.

63

Кроме аргументов командной строки и позиционных параметров, могут обрабатываться файлы, используя знаки подстановки:

for file in *

do echo “found $file”

done

В этом примере выводится список файлов, находящихся в данном каталоге, по одному названию файла в строке.

for file in [ab]* ….

 

for file in a?? ….

64

Пустая строка

: - это команда обозначает отсутствие операции. Её нельзя использовать в качестве комментария.

# - оператор комментария (игнорирует выполнение);

:- ничего не делает. if [ ! $1]

then : # Нет ничего fi

65

Данный пример показывает, что shell будет обрабатывать это, так как двоеточие

– это команда. Если просто подставить #, то процессор сообщит, что нет выполняемой команды.

66

Прерывание цикла break

Оператор break прерывает очередное выполнение включающего самого внутреннего его цикла. Например,

while true

do echo $Loop3 until false

do echo $Loop2 while true

3 2 1 do echo $Loop1 break $level

done

done

done

67

 

Если переменная level отсутствует или равна 1, то прерывается цикл 1.

Если level=2, то прерывается цикл 2, и если level=3, то прерывается цикл 3.

Прерывание итерации цикла continue

Эта команда приводит к прерыванию

выполнения итерации ближайшего цикла, в котором находится сама команда continue.

68

while true

do echo $Loop3 until false

do echo $Loop2 while true

do echo $Loop1 continue $level

done done

done

69

Если переменная level имеет значение 2, то выполнение будет продолжено с оператора цикла until.

Если же значение будет равно 3, то будет возобновлен внешний цикл while.

Если же переменная level не установлена или равна 1, то будет продолжаться выполнение самого внутреннего цикла.

70

Соседние файлы в папке Компьютерные сети