Browse Source

doc: About filtrs

Serj Kalichev 1 month ago
parent
commit
39d0d365d5
1 changed files with 34 additions and 0 deletions
  1. 34 0
      docs/klish3.ru.md

+ 34 - 0
docs/klish3.ru.md

@@ -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 конфигурации