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.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.