Ответ 1
В Vixie cron, который, возможно, наиболее распространен, вы можете сделать это почти так же, как оболочка script.
VARIABLE=value
PATH=/bin:/path/to/doathing
0 0 * * * doathing.sh $VARIABLE
На странице руководства написано:
Активная строка в crontab будет либо средой, либо командой cron. Настройка окружения имеет вид,
name = value
где пробелы вокруг знака равенства (=) являются необязательными, а любые последующие непереходящие пробелы в значении будут частью присвоенного значения назвать. Строка значений может быть помещена в кавычки (одиночные или двойные, но соответствующие), чтобы сохранить ведущие или завершающие пробелы. Имя Строка также может быть помещена в цитату (одиночный или двойной, но соответствующий), чтобы сохранить ведущие, конечные или внутренние пробелы.
Вы можете узнать, есть ли у вас Vixie cron, проверив страницу руководства для crontab
; автором будет Пол Викси. Различные клоны могут или не могут поддерживать это (например, BusyBox cron), и в этом случае ваш лучший вариант - обернуть свою команду в оболочку script и запустить ее script из cron. На самом деле, это хорошая вещь для чего-то сложного.