Як змінити оболонку cron (sh на bash)?


70

Чи можна змусити команди в crontab виконувати з bash замість sh? Я знаю, що ти можеш передавати команди для удару -c, але це дратує, і я ніколи не використовую sh.


насправді не знаю, що ти робиш (не знайомий із cron), але якщо ти запускаєш сценарій, то додавання в нього шебангу має спрацювати, не впевнений, чи я прав.
Елвін Вонг

Відповіді:


103

Ви повинні мати можливість встановити змінну середовища перед запуском роботи cron:

SHELL=/bin/bash
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1

2
чи можна також змусити його читати .bashrc?
Fluffy

3
@Fluffy .bashrc- за визначенням - для інтерактивних оболонок; тому при запуску з допомогою cron, bashбуде читати тільки цей файл , якщо це інтерактивна оболонка .
umläute

18
Мені вдалося змусити його читати bashrc, додавши BASH_ENV="/root/.bashrc". Спасибі
Пухнастий

2
@Fluffy ви повинні зробити так, що відповідь
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.