Канал — это форма перенаправления (передачи стандартного вывода в другое место назначения ), которое используется в Linux и других Unix-подобных -операционных системах для отправки вывода одной команды/программы/процесса в другая команда/программа/процесс для дальнейшей обработки. Системы Unix/Linux позволяют подключать стандартный вывод команды к стандартному выводу другой команды. Вы можете сделать это, используя символ вертикальной черты «|».
Конвейер используется для объединения двух или более команд, и в этом случае выходные данные одной команды действуют как входные данные для другой команды, а выходные данные этой команды могут действовать как входные данные для следующей команды и так далее. Его также можно представить как временное соединение между двумя или более командами/программами/процессами. Программы командной строки, выполняющие дальнейшую обработку, называются фильтрами.
Эта прямая связь между командами/программами/процессами позволяет им работать одновременно и позволяет непрерывно передавать данные между ними, а не передавать их через временные текстовые файлы или через экран дисплея. Каналы являются однонаправленными, т. е. поток данных слева направо по конвейеру.
Синтаксис:
command_1 | command_2 | command_3 |.... | command_N
Пример :Список всех файлов и каталогов и его ввод в команду more.
$ ls -l | more
Команда more
использует вывод ls -l
в качестве входных данных. Чистый эффект этой команды заключается в том, что вывод ls -l
отображается по одному экрану за раз. Трубы действуют как контейнер, который принимает выходные данные ls -l
и передает их more
в качестве входных данных. Эта команда не использует диск для подключения стандартного вывода ls -l
к стандартному вводу more
, поскольку конвейер реализован в основной памяти. С точки зрения операторов перенаправления ввода/вывода приведенная выше команда эквивалентна следующей последовательности команд.
$ ls -l -> temp
more -> temp (or more temp)
[contents of temp]
rm temp
Вы можете сделать это,
src
)dst
). dst
src
Чтобы найти открытое окно, вы можете использовать xdotool
,
src=$(xdotool getwindowfocus)
dst=$(xdotool search --onlyvisible --class "Chromium")
А затем, чтобы отправить ему правильный ключ, вы можете использовать,
export key="Ctrl+P"
xdotool windowfocus --sync "$dst" key "$key" windowfocus --sync "$src"