«At» (пакетная) задание + диалог = ничего

Цель: иметь возможность получить «инфобокс» для открытия в терминале через некоторое время; стиль будильника, (в Linux-окне Debian). Однако:

> at now + 3 min dialog --infobox "Time to attend to matters\!" 6 33 

не производит выход. и системный адрес электронной почты, в котором говорится: «Ошибка открытия терминала: неизвестно». Таким образом, мы префикс диалога с некоторыми относящимися к окружающей среде материалами, которые делали трюк в прошлом, что команда после «at» теперь выглядит так:

 TERM=linux DISPLAY=":0.0" dialog --infobox "Seek ye the truth\!" 6 33 

Теперь единственное, что есть, – это системное письмо, заполненное escape-последовательностями, которое, я думаю, является результатом самого диалога? Как можно получить диалог, чтобы хорошо играть с «на»? (Благодарю!)

2 Solutions collect form web for “«At» (пакетная) задание + диалог = ничего”

at и cron – инструменты для запуска команд без присмотра. Плановая команда может быть запущена, когда сеанс пользователя не существует или когда пользователь вошел в систему на другом терминале, поэтому демона atd считывает стандартный вывод команды и отправляет его пользователю по электронной почте. Когда пользователь хочет сделать что-то еще, он должен перенаправить стандартный вывод. Но перенаправление на пользовательский терминал довольно сложно, потому что команда должна каким-то образом определить терминал.

Если вы хотите что-то отобразить после задержки, попробуйте что-то вроде

 (sleep 10 && /bin/echo "game over") & 

Команды, использующие dialog , не работают, потому что не существует терминала (tty), связанного с процессом at . Подобно cron , at предназначен для неинтерактивной среды. Поскольку для взаимодействия с dialog не существует терминала, установка TERM не помогает.

Если вы вошли в систему (и у вас есть X), вы можете сделать dialog в отдельном терминале. Например:

 at now -f foo 

где foo

 xterm -display :0 -e dialog --msgbox "Seek ye the truth!" 6 33 & 

работает достаточно хорошо:

диалог запускается из сценария

но добавляет несколько изменений:

  • инфобокс будет мигать на экране и уходить слишком быстро. Вместо этого используйте msgbox
  • не ждите в задании at / batch для его завершения: используйте "&"

Если вам нужен ответ из dialog , вы должны иметь в виду, что он обычно записывает текстовый интерфейс в стандартный вывод и отвечает на стандартную ошибку. Вы можете отменить это (упростите скрипты) с помощью опции --stdout . (zenity не поддерживает эту опцию, поэтому вы можете захотеть приспособиться к обходному сценарию).

Дальнейшее чтение:

  • Корпус коммутатора не работает в Shell (показывает, как работать с ограничениями zenity)
  • at, batch, atq, atrm – очередь, проверка или удаление заданий для последующего выполнения
  • диалог – отображать диалоговые окна из сценариев оболочки
  • zenity – отображение диалогов GTK +
  • Комбинация терминала и веб-браузера
  • Почему атрибуты терминала отличаются друг от друга?
  • Отображать файл с цветами ANSI
  • Запуск приложения из терминала
  • Выход из ls имеет символы новой строки, но отображается в одной строке. Зачем?
  • Терминал, приглашение изменено на «-Bash-4.2» и потеряны цвета
  • Где я могу найти все параметры tmux?
  • Почему Ctrl + R ничего не делает в терминале Ubuntu?
  • Как я могу остановить Z-оболочку от сговора, чтобы вмешаться в вывод GNU Make?
  • Как начать телефонный звонок с терминала в телефоне Ubuntu?
  • Я не могу открыть терминал в Cinnamon
  • Linux и Unix - лучшая ОС в мире.