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

Фоновое выполнение цикла

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

for var in 1 2 3 4 5 do echo “$var”

done &

это может быть применено и для циклов while и until.

71

Выход из программы exit

Эта команда прекращает не просто текущий цикл, а всей процедуры.

После выполнения команды exit в вызывающую программу передается код возврата, равный нулю (true).

Если команда имеет аргумент, например, exit $status, то возвращается код возврата,

равный значению переменной status.

72

Переназначение ввода/вывода и циклы

Переназначение ввода

a)for var in * do

команды done < источник

Все команды в цикле получают данные через стандартный ввод. Можно получить из перенаправленного источника (любая команда считывает данные из указанного

источника).

73

b) for var in * do

команды < источники done

Здесь каждая команда может брать

входные данные с разных мест.

Переназначение вывода Аналогично можно переназначить вывод:

a) for var in 1 2 3 4 5 do

echo “$var”

done

74

 

Здесь все выходные данные всех команд в цикле направляются в единый файл (стандартный вывод).

b)for var in 1 2 3 4 5 do

echo “Processing $var” > /dev/tty команды

done > output

Здесь по команде echo данные направлены на tty, а по всем другим командам - в единый файл (стандартный

вывод).

75

Можно связать циклы и конвейеры:

a)ls | for file in * do

echo $file file $file

done

Это пример перекачки данных в цикл

из конвейера. Команда file определяет тип файла.

76

b)for file in * do

echo $file done | wc –l

Здесь передача информации в конвейер в конце цикла. Происходит печать имен файлов и посылка по конвейеру команде wc –l для подсчета количества файлов.

77

Подстановка результатов выполнения команд

shell дает возможность использования

стандартного вывода любой команды в shell-программе.

Если команда заключена в знаки ударения (апострофы), то shell выполняет

эту команду и подставляет вместо нее полученный результат.

78

Пример 1. now = 'date'

В результате действия переменной now будет присвоена текущая дата:

now = Wed Feb 12 11:49:23 1997 Теперь по команде

echo $now

на экран будет выведена дата, хранящаяся в now.

79

Пример 2. f_names = 'ls'

В этом случае переменной f_names будут

присвоены результаты выполнения команды ls.

Если в текущем каталоге было 4 файла с именами file_1, file_2, file_3, file_4, то при использовании команды для вывода

echo $f_names

 

на экране появится:

 

file_1 file_2 file_3 file_4

80

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