Команды, использующие диалоговое окно
, не работают, потому что нет терминала (tty), связанного с процессом в
. Подобно cron
, at
задумано как неинтерактивная среда. Поскольку нет терминала для диалога
, с которым можно было бы взаимодействовать, установка TERM
не помогает.
Если вы вошли в систему (и у вас запущен X), вы можете сделать так, чтобы диалог
отображался в отдельном терминале. Например:
at now -f foo
, где foo
имеет
xterm -display :0 -e dialog --msgbox "Seek ye the truth!" 6 33 &
, работает достаточно хорошо:
, но добавляет несколько изменений:
Если вам нужен ответ из диалогового окна
, вы Следует иметь в виду, что он обычно записывает текстовый интерфейс в стандартный вывод и свой ответ на стандартную ошибку. Вы можете изменить это (упростив сценарии), используя параметр - stdout
. (zenity не поддерживает эту опцию, поэтому вы можете решить эту проблему с помощью сценария).
Дополнительная литература: