Введение в CGI


Конвейеры


Одним из наиболее полезных свойств командных языков является организация конвейеров и перенаправление ввода/вывода. Под конвейером понимают последовательность программ (команд), соединенных друг с другом через ввод/вывод. Стандартный поток вывода первой программы подается на стандартный поток ввода второй программы, стандартный поток вывода второй программы, в свою очередь, подается на стандартный поток ввода третьей и т.д. Выглядит это примерно следующим образом:

ps -ax | grep httpd | wc -l

В данном случае вывод статистики об активных процессах подается на ввод фильтра grep, который выводит только те строки, где встречается программа httpd. В свою очередь, выход grep подается на вход счетчика строк (атрибут -l), который в итоге сообщает, сколько в данный момент в системе крутится HTTP-серверов. Символы "|" как раз и обозначают конвейеризацию выполнения программ.

Кроме конвейеров, к стандартному вводу/выводу можно применять перенаправление. Так, символ "<" означает чтение из стандартного потока ввода, а символ ">" — вывод в файл. Этот метод стоит использовать при перенаправлении стандартного потока ошибок в стандартный поток вывода:

ls hhjhj > intuit 2>&1

В данном случае задана заведомо ошибочная с точки зрения синтаксиса команда. Стандартный вывод перенаправляется в файл "intuit", а стандартный поток ошибок перенаправляется в стандартный вывод и, следовательно, тоже попадает в файл "intuit".



Содержание раздела