Вывод ввода netcat на терминал

Я не уверен, можно ли запустить его в другом рабочем пространстве, но вы можете переместить он там со скриптом.

Взгляните на эту страницу: https://wiki.xfce.org/faq , в подпункте «Как программно переключать рабочие области, перемещать окна и т. Д.?»

Итак, вы Вы можете запустить вашу программу с помощью простого сценария оболочки, например:

#!/bin/sh
yourprogram &
PID="$!"
#echo $PID
sleep 1s 
#sleep is required because the window takes aome time to open, maybe it can be adjusted
WINH="$(wmctrl -l -p | grep "$PID" | cut -d " " -f1)"
#echo $WINH
wmctrl -i -r $WINH -t 2

Это не идеально, поскольку процесс может иметь несколько окон (не знаю, что тогда произойдет), но он должен работать для простых программ.

1
21.09.2018, 16:33
2 ответа

Вы можете использовать teeи воспользоваться преимуществами подстановки процессов:

$ cat somefile.txt | tee >(nc server port)

teeпросто копирует свой ввод как в stdout, так и в файл.

С помощью<()(bashподстановки процесса )вы говорите bashписать на ввод команды вместо файла.

2
27.01.2020, 23:31

Вы можете использовать teeи избежать замены процесса:

$ ( cat somefile.txt | tee /dev/fd/3 | nc host port ) 3>&1

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

user@hostname $ cat somefile.txt
GET / HTTP/1.0
Host: StackOverflow.com

user@hostname $ cat somefile.txt | tee >(nc stackoverflow.com 80); echo "DONE"
GET / HTTP/1.0
Host: StackOverflow.com

DONE
user@hostname $ HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=utf-8
Location: https://stackoverflow.com/
[...]

Обратите внимание, что в нем написано «ГОТОВО» и отображается подсказка в середине вывода. Это не проблема, если ncработает синхронно:

user@hostname $ ( cat somefile.txt | tee /dev/fd/3 | nc stackoverflow.com 80 ) 3>&1; echo "DONE"
GET / HTTP/1.0
Host: StackOverflow.com

HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=utf-8
Location: https://stackoverflow.com/
[...]
DONE
0
27.01.2020, 23:31

Теги

Похожие вопросы