2

Я запускаю скрипт bash, который выполняет команду, которая вызывает всплывающее диалоговое окно с графическим интерфейсом (я выполняю его несколько раз внутри скрипта). Это всплывающее окно нарушает все, что я делаю в пользовательском интерфейсе при выполнении сценария в фоновом режиме.

UI

Есть ли способ скрыть это?

1 ответ1

1

Приложения с графическим интерфейсом, выполняемые из сценария, пытаются подключиться к X-серверу, указанному в переменной DISPLAY . Если вы очистите эту переменную, программы не смогут открыть окно, что должно эффективно предотвращать любые всплывающие окна. Например, если вы попытаетесь запустить это:

DISPLAY= xterm

Вы получите ошибку, подобную этой:

xterm: Xt error: Can't open display:
xterm: DISPLAY is not set

Либо вы можете написать DISPLAY= прямо перед командой, которую хотите запустить, как я показал с помощью xterm выше, или вы можете написать DISPLAY= в отдельной строке где-то ранее в скрипте.

Однако некоторые программы могут вообще не запускаться, если не установлен DISPLAY . Если это так для программы, генерирующей всплывающее окно, и если эта программа делает что-то полезное, кроме всплывающего окна, то вы не сможете использовать эту технику. В любом случае, стоит попробовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .