如何更改 cron shell(sh 到 bash)?

Flu*_*ffy 90 shell cron

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

slm*_*slm 131

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

SHELL=/bin/bash
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
Run Code Online (Sandbox Code Playgroud)

  • 我可以通过添加`BASH_ENV="/root/.bashrc"` 让它读取 bashrc。谢谢 (24认同)
  • @Fluffy 你应该回答这个问题 (4认同)
  • 关于`.bashrc`,`bash -l` 看起来很有用,http://blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html (4认同)
  • 是否也可以让它读取 .bashrc? (3认同)
  • @Fluffy `.bashrc` 是 - 根据定义 - 用于 *interactive* shell;所以当通过 `cron` 启动时,`bash` 只会读取这个文件,如果它是一个 *交互式 shell*。 (3认同)