问题描述
我通常对 cron 如何执行脚本有几个问题,因为它们通常没有我的环境设置.有没有办法以与 cron 相同的方式调用 bash(?) 以便我可以在安装脚本之前测试它们?
I normally have several problems with how cron executes scripts as they normally don't have my environment setup. Is there a way to invoke bash(?) in the same way cron does so I could test scripts before installing them?
推荐答案
将此添加到您的 crontab(临时):
Add this to your crontab (temporarily):
* * * * * env > ~/cronenv
运行后,执行以下操作:
After it runs, do this:
env - `cat ~/cronenv` /bin/sh
这假设您的 cron 运行/bin/sh,无论用户的默认 shell 是什么,它都是默认值.
This assumes that your cron runs /bin/sh, which is the default regardless of the user's default shell.
脚注:如果 env
包含更高级的配置,例如 PS1=$(__git_ps1 "(%s)")$
,它会隐含地出错 env: ": 没有那个文件或目录
.
Footnote: if env
contains more advanced config, eg PS1=$(__git_ps1 " (%s)")$
, it will error cryptically env: ": No such file or directory
.
这篇关于如何模拟cron执行脚本的环境?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!