|
@@ -231,8 +231,42 @@ stdin, stdout, stderr. За счет этого, выполнение таког
|
|
|
введенный пользователем аргумент допустимым (см. PTYPE), а также функции для
|
|
|
формирования автодополнения и подсказок.
|
|
|
|
|
|
+Символ, или, вернее сказать, команда klish, так как команда может состоять из
|
|
|
+несколько последовательно выполняемых символов, может быть обычной, либо
|
|
|
+являться фильтром. Для простоты предположим, что команда выполняет только один
|
|
|
+символ, и поэтому будем говорить о символах, а не командах. Обычный символ
|
|
|
+выполняет кокое-либо полезное действие и, часто, дает на выходе некоторый
|
|
|
+текстовый вывод. А фильтр получает на вход результат работы, т.е., в данном
|
|
|
+случае, текстовый вывод обычного символа и обрабатывает его. Чтобы указать, что
|
|
|
+к обычной команде должен быть применен фильтр, пользователь использует цепочки
|
|
|
+команд, разделенных знаком "|". Во многом это аналогично цепочкам в стандартной
|
|
|
+пользовательской оболочке shell.
|
|
|
+
|
|
|
![Фильтры](/klish-filters.ru.png "Фильтры")
|
|
|
|
|
|
+Синхронные символы не имеют входного потока stdin, т.е. не получают на вход
|
|
|
+никаких данных и поэтому не могут быть полноценными фильтрами, а могут
|
|
|
+использоваться только в качестве первой команды в цепочке команд. Облегченные
|
|
|
+синхронные символы не имеют и выходного потока stdout, поэтому их нельзя
|
|
|
+использовать ни только как фильтры, но и как команду на первом месте в цепочке
|
|
|
+команд, потому что фильтр не сможет получить от них никаких данных. Типичное
|
|
|
+использование облегченных синхронных символов - это служебные внутренние функции,
|
|
|
+которые не взаимодействуют с пользователем напрямую и не используются в цепочках
|
|
|
+команд.
|
|
|
+
|
|
|
+Первая команда в цепочке команд получает на вход потока stdin данные от
|
|
|
+пользователя, если это требуется. Назовем поток stdin от пользователя -
|
|
|
+глобальным потоком stdin. Затем поток stdout предыдущего символа в цепочке
|
|
|
+поступает на вход потока stdin последующего символа. Выходной поток stdout
|
|
|
+последнего в цепочке символа считается глобальным и отправляется обслуживающему
|
|
|
+серверу, а затем пользователю.
|
|
|
+
|
|
|
+Любой символ в цепочке имеет возможность писать в поток stderr. У всей цепочки
|
|
|
+единый поток stderr, т.е. один для всех символов. Этот поток считается глобальным
|
|
|
+stderr и отправляется обслуживающему серверу, а затем пользователю.
|
|
|
+
|
|
|
+Количество команд в цепочке команд не ограничено. Команда klish должна быть
|
|
|
+объявлена фильтром, чтобы ее можно было использовать после знака "|".
|
|
|
|
|
|
|
|
|
## Структура XML конфигурации
|