Как изменить оболочку 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

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.