#!/bin/bash
ddd=$(date +%Y-%m -d "-1 month")
xmessage -timeout 10 $ddd
Если я попробую этот простой скрипт, я получу, что он отлично работает из терминала, но когда я запускаю этот скрипт через cron
, переменная всегда пуста? Я пробовал много разных синтаксисов, но результат тот же. Работает в терминале, но не в cron.
man date
говорит:
SYNOPSIS
date [OPTION]... [+FORMAT]
Это должно работать в любом случае, но вы на безопасной стороне, используя date
, как говорит вам man-страница:
ddd=$(date -d "-1 month" +%Y-%m)
С помощью скрипта
#!/bin/bash
ddd=$(date -d "-1 month" +%Y-%m)
xmessage -timeout 10 $ddd
и строки cronjob
* * * * * DISPLAY=:0 /path/to/script.sh
он очень хорошо работает в моей системе - см. Как запустить приложение с графическим интерфейсом из cron? и Cron HowTo .