Приемы профессиональной работы в UNIX


ПОЯСНЕНИЯ - часть 3


Если файл удовлетворяет нашим критериям, он обрабатывается командой pr. Результат направляется в стандартный вывод, который переадресован циклом while так, чтобы результат четко попадал в один файл. Отметим, что нам нужно поставить символ добавления в файл вывода (>>). В противном случае мы получим запись на место существующего файла печати, а значит в файле печати будет находиться только последний обработанный файл.

После того как все файлы обработаны, задается вопрос о том, хотите ли вы вывести результирующий файл на печать. Предлагается ответить на этот вопрос "да" (yes) или "нет" (no), однако в программе проверяется только положительный ответ (yes). Это значит, что нажатие любой клавиши трактуется как ответ "no", кроме клавиши "y", означающей "да". Ответ пользователя читается с клавиатуры, и проверяется, является ли он символом "y". Если да, то файл ставится в очередь на печать. Если нет, дальнейшая проверка не производится и командный файл завершается.

Отметим, что запрос о выводе на печать поступил в стандартный вывод. Переадресация вывода действовала только во время работы цикла while, а затем прекратилась. Так было сделано потому, что цикл while был фактически еще одним порожденным shell-процессом (subshell) и переадресация действовала только в этом те внимание, что маршрутнаяустановите значения переменных вне цикла, а затем измените их внутри цикла. После завершения цикла переменные по-прежнему имеют свои первоначальные значения, а не измененные в цикле значения. Измененные значения касались переменных порожденного интерпретатора shell, которые исчезли, когда порожденный shell завершился. Переменные интерпретатора shell могут передавать значения только вниз, порожденным процессам, но процессы-потомки не могут передавать значения переменных вверх, родительскому процессу. Обычно передача значений переменных поддерживается при помощи какого-либо файла, в котором хранятся данные для обмена между родительским процессом и процессом-потомком.




Начало  Назад  Вперед



Книжный магазин