Làm thế nào để thay đổi vỏ cron (sh thành bash)?


70

Có thể thực hiện các lệnh trong crontab chạy bằng bash thay vì sh? Tôi biết bạn có thể truyền lệnh cho bash -c, nhưng điều đó thật khó chịu và tôi không bao giờ sử dụng sh.


không thực sự biết bạn đang làm gì (không quen thuộc với cron) nhưng nếu bạn đang chạy một tập lệnh thì thêm shebang vào nó sẽ hoạt động, không chắc tôi có đúng không.
Alvin Wong

Câu trả lời:


103

Bạn sẽ có thể đặt biến môi trường trước khi công việc định kỳ chạy:

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

2
cũng có thể làm cho nó đọc .bashrc?
Fluffy

3
@Fluffy .bashrclà - theo định nghĩa - cho các vỏ tương tác ; Vì vậy, khi bắt đầu thông qua cron, bashsẽ chỉ đọc tệp này nếu nó là một vỏ tương tác .
umläute

18
Tôi đã có thể làm cho nó đọc bashrc bằng cách thêm BASH_ENV="/root/.bashrc". Cảm ơn
Fluffy

2
@Fluffy bạn nên đưa ra câu trả lời
vol7ron

2
Về .bashrc, có bash -lvẻ hữu ích, blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html
mpapec
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.