Como mudar o cron shell (sh para bash)?

70

É possível executar comandos no crontab com bash em vez de sh? Eu sei que você pode passar comandos para bater -c, mas isso é chato e eu nunca uso sh de qualquer maneira.

Fofo
fonte
realmente não sei o que você está fazendo (não familiarizado com o cron), mas se você estiver executando um script, adicionar um shebang a ele deve funcionar, não tenho certeza se estou correto.
Alvin Wong

Respostas:

103

Você deve poder definir a variável de ambiente antes da execução da tarefa cron:

SHELL=/bin/bash
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
slm
fonte
2
é possível também fazê-lo ler .bashrc?
Fluffy
3
@ Fofo .bashrcé - por definição - para shells interativos ; portanto, quando iniciado via cron, bashsó lerá esse arquivo se for um shell interativo .
trema
18
Consegui fazê-lo ler bashrc adicionando BASH_ENV="/root/.bashrc". Obrigado
Fluffy
2
@Fluffy você deve fazer que uma resposta
vol7ron
2
No que diz respeito .bashrc, bash -lparece útil, blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html
mpapec