如何更改cron shell(将sh更改为bash)?


70

是否可以使crontab中的命令使用bash而不是sh运行?我知道您可以通过使用命令将命令传递给bash -c,但这很烦人,而且我从不使用sh。


并不是很清楚自己在做什么(不熟悉cron),但是如果您正在运行脚本,则向其添加shebang应该可以,但不确定我是否正确。
Alvin Wong

Answers:


103

您应该能够在cron作业运行之前设置环境变量:

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

2
是否有可能也使其读取.bashrc?
蓬松的

3
@Fluffy- .bashrc根据定义-是用于交互式 shell的;因此,当通过启动时cronbash仅当它是交互式外壳程序时,才读取此文件。
umläute

18
我能够通过添加将其读取为bashrc BASH_ENV="/root/.bashrc"。谢谢
Fluffy

2
@蓬松,你应该做一个答案
vol7ron 17-4-11

2
关于.bashrcbash -l看起来很有用,blog.endpoint.com
2015/02 /
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.