Невозможно слушать, потому что прослушивание не в bash, как указал Адамски.
Но вам не нужно слушать на клиенте, поэтому вам не нужен netcat на клиенте для передачи файлов, например:
## To send a file to the locked down computer:
## Local server where you do have netcat
cat ~/.bashrc | nc -l -q 1 -p 8998
## Remote locked down computer without netcat
cat < /dev/tcp/local.server.ip.addr/8998 > latest.bashrc
## To grab a file from the locked down computer:
## First - on the local server run
nc -l -p 8998 -q 1 > remote.bashrc < /dev/null
## Then on the locked down computer run:
cat ~/.bashrc > /dev/tcp/local.server.ip.addr/8998 0<&1 2>&1
Вы описываете, что происходит, когда программа запускает какой-то сервер, чтобы новые экземпляры подключались к существующему. Если mousapad
уже запущен, он просто подключается к существующему экземпляру и немедленно завершает работу. Поскольку он завершается немедленно, ваш скрипт продолжает работу, поэтому вы видите zenity
.
Исправление простое, есть возможность отключить это:
$ mousepad -h
Usage:
mousepad [OPTION…] [FILES...]
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gtk Show GTK+ Options
Application Options:
--disable-server Do not register with the D-BUS session message bus
-q, --quit Quit a running Mousepad instance
-v, --version Print version information and exit
--display=DISPLAY X display to use
Вариант --disable-server
, поэтому просто измените свой скрипт на этот:
#!/bin/sh
...several lines of commands...
mousepad --disable-server file.txt
zenity --info
...several more lines of commands...
exit