Как изменить оболочку cron (sh на bash)?

70

Можно ли заставить команды в crontab работать с bash вместо sh? Я знаю, что вы можете передавать команды для bash -c, но это раздражает, и я все равно никогда не использую sh.

пушистый
источник
на самом деле не знаю, что вы делаете (не знаком с cron), но если вы запускаете скрипт, то добавление к нему шебанга должно работать, не уверен, что я прав.
Элвин Вонг

Ответы:

103

Вы должны иметь возможность установить переменную окружения до запуска задания cron:

SHELL=/bin/bash
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
SLM
источник
2
Можно ли сделать так, чтобы он читал .bashrc?
Пушистый
3
@Fluffy .bashrc- по определению - для интерактивных оболочек; поэтому при запуске с помощью cron, bashбудет читать только этот файл , если это интерактивная оболочка .
umläute
18
Я смог заставить его читать bashrc, добавив BASH_ENV="/root/.bashrc". Спасибо
Пушистый
2
@ Пушистый, ты должен ответить на этот вопрос
vol7ron
2
Что касается .bashrc, bash -lвыглядит полезным, blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html
mpapec