Bagaimana cara mengganti cron shell (sh to bash)?

70

Apakah mungkin membuat perintah di crontab dijalankan dengan bash, bukan sh? Saya tahu Anda bisa memberikan perintah untuk di-bash -c, tapi itu menjengkelkan dan saya tidak pernah menggunakan sh.

Halus
sumber
tidak benar-benar tahu apa yang Anda lakukan (tidak terbiasa dengan cron) tetapi jika Anda menjalankan skrip kemudian menambahkan shebang ke dalamnya harus berfungsi, tidak yakin apakah saya benar.
Alvin Wong

Jawaban:

103

Anda harus dapat mengatur variabel lingkungan sebelum menjalankan tugas cron:

SHELL=/bin/bash
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
slm
sumber
2
apakah mungkin juga membuatnya membaca .bashrc?
Fluffy
3
@Fluffy .bashrcadalah - menurut definisi - untuk shell interaktif ; jadi ketika mulai cron, bashhanya akan membaca file ini jika itu adalah shell interaktif .
umläute
18
Saya bisa membuatnya membaca bashrc dengan menambahkan BASH_ENV="/root/.bashrc". Terima kasih
Fluffy
2
@Fluffy Anda harus menjawabnya
vol7ron
2
Mengenai .bashrc, bash -lterlihat bermanfaat, blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html
mpapec