Невозможно остановить одновременное выполнение шага в сценарии оболочки, который открывает графический интерфейс Mousepad Windows

Невозможно слушать, потому что прослушивание не в 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
3
11.11.2020, 22:50
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
3
18.03.2021, 22:50

Теги

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