为一个 cron 作业切换 shell

为一个 cron 作业切换 shell

假设我的 中有以下内容crontab

* * * * * command1 -option A; command2; command3; etc. 

我想cron使用特定的 shell 运行该行中的命令。我怎样才能做到这一点?

我知道从技术上讲我可以将这些命令放入一个文件中,添加相应的 shebang,然后只要求cron运行该 shell 脚本,但我想避免这种情况。有什么方法可以cron在特定的 shell 中运行一组命令吗?

答案1

您可以将 cron 字符串更改为:

 * * * * *     /bin/sh commannd1..; /bin/tcsh command2... ; /bin/zsh command3

这是比较极端的情况。但您可以在命令之前添加特定 shell 的名称前缀。

另一个选项是将所有命令回显到特定 shell

 * * * * *    echo 'comand1...;command2....;command3...' | /bin/sh 

相关内容