Для запущения программы GUI необходимо установить DISPLAY
переменная среды, и возможно XAUTHORITY
также. Посмотрите Открытый окно на удаленном X дисплеев (почему "Не может открыть дисплей")? для получения дополнительной информации.
~
значение Вашего корневого каталога является функцией оболочки, Вы не можете использовать его в crontab. По той же причине Вы не можете использовать HOME
. Используйте полный путь для своего корневого каталога:
PATH=/home/username/bin:/usr/bin:/bin
С ударом как Ваша оболочка, ~
на самом деле работы, потому что удар расширяется ~
в значении PATH
. Но это - причуда удара, никакая другая оболочка или другая программа не прокладывают себе путь.
Команда env DISPLAY=:0
отображает текущую среду, кроме с DISPLAY
набор к :0
. Это не полезно. Вы, по-видимому, имели в виду export DISPLAY=:0
.
Ваше расположение очень сложно. Крон разработан для повторения задач. Если Вы хотите запланировать фоновое задание только однажды, используйте в.
at 7:53 <
В сохраняет DISPLAY
переменная среды, поэтому если Вы работаете at
команда от GUI, где Вы хотите, чтобы Firefox отобразил окно, Вы не должны устанавливать его вручную.
Это просто артефакт того, как оболочки реализуют трассу выполнения; это не меняет способ передачи аргументов в команду.[11660] Кавычки добавляются, распечатываются и отбрасываются. Вот соответствующая часть исходного кода [11661]bash[11662], [11663]print_cmd.c[11664]:
Что касается того, почему авторы решили сделать это, то там не сказано. Но вот похожий код в [11665]variables.c[11666], и он поставляется с комментарием:
Так что, возможно, это сделано для того, чтобы было проще скопировать командные строки из вывода трассы выполнения и запустить их снова..Потому что внутри апострофов ("одинарных кавычек") определено не делать никаких расширений, в то время как внутри кавычек расширения выполняются... проверьте внимательно ваше руководство.
shell globbing расширяет определенные символы, т.е. *
и ?
. Если имя файла не совпадает, возвращается только оригинал. Т.е., если у вас есть только файлы lovers
, love1
и love2
, то love?
расширяется до любовь1 любовь2
, любовь*
расширяется до любовь1 любовь2 любовь
, а ненависть?
дает только ненависть?
. Поэкспериментируйте немного...