Может ли команда «at» выполнить любой скрипт оболочки?

Я создал java-программу, которая показала диалог сообщения. После нажатия OK он закрывается и выполнение программы заканчивается.

Затем я создал сценарий оболочки alarm.sh который выполнил программу. Я тестировал его, и он работал:

 $ alarm.sh "-i It's time to ring up the revenue service" 

Однако когда я выполнил:

 $ echo "alarm.sh \"-i It's time to ring up the revenue service\"" | at 15:00 

Диалоговое окно сообщения не всплывало в 15:00, хотя задание было запланировано. Зачем? Как «at» выполняет сценарии оболочки и каковы его ограничения?

  • Синтаксис оболочки: как правильно использовать \ для разрыва строк?
  • Grep -m 1 не работает
  • В сценарии bash, используя условное выражение «или» в выражении «if»
  • Выйти из Google Chrome с терминала
  • Как я могу заполнить массив в цикле сценариев оболочки Bash
  • grep с количеством отдельных паттернов
  • Как передать переменную в sftp?
  • В чем разница в этих двух средах bash?
  • 2 Solutions collect form web for “Может ли команда «at» выполнить любой скрипт оболочки?”

    Нет, at может запускать неинтерактивные скрипты.

    Эти сценарии будут запускаться без подключения к терминалу, откуда вы запустили команду at . Если программа выводит что-то в поток stdout и / или stderr , этот вывод будет отправлен вам по почте.

    Некоторые переменные не сохраняются при запуске скрипта, особенно в DISPLAY , что является причиной неудачной попытки. Возможно, вы посмотрите на свою почту, чтобы узнать, сообщается ли об ошибке. Если нет, sendmail или подобное, вероятно, не установлено / не настроено.

    Если вы хотите использовать текущий X11-дисплей, когда команда будет запущена, вы можете установить его таким образом:

     echo "DISPLAY=$DISPLAY alarm.sh \"-i It's time to ring up the revenue service\"" | at 15:00 

    at может не иметь того, что ваш текущий рабочий каталог является его рабочим каталогом. Укажите полный путь к alarm.sh :

     echo "/path/to/alarm.sh '-i There is no alarm; only Zuul'" | at 15:00 
    Linux и Unix - лучшая ОС в мире.