在Solaris crontab上设置环境变量

发布于 2024-12-09 13:44:52 字数 126 浏览 1 评论 0原文

有没有办法直接在 Solaris 上的 crontab 中设置环境变量?

我想要的行为是让 crontab 中的每个脚本都知道特定的环境变量。我想避免创建所有脚本都必须调用的 setupEnvironment.sh 脚本。

Is there a way to set an environment variable directly in a crontab on solaris?

The behavior i want is for each script in my crontab to know a specific environment variable. I want to avoid creating a setupEnvironment.sh script that all my scripts have to call.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

热血少△年 2024-12-16 13:44:52

是的,没问题,即

59 23 31 12 * { var="value" ; export var ;  /path/2/myProgram "${var}" ; }  > /tmp/myProgLogFile.txt 2>&1

OR (与 ${var} 类似的想法现在用于 myProgram 的“环境中传递”)

59 23 31 12 * { var="value" ; export var ; myProgVar="${var}" /path/2/myProgram ; }  > /tmp/myProgLogFile.txt 2>&1

这些是稍微夸张的示例。关键点是您需要导出 var 才能使其对进程组(er) 启动的任何子进程可见 ( { ... ; } ) ... (请注意,结束符 '}' 之前的结束符 ';' 是强制性的,如果缺少该结束符,则错误消息将无法帮助您解决问题;-) )

对于 /bin 的Solaris 和其他旧版 unixen 来说是这样的/sh 是承载的 shell(而不是bash)。

我希望这有帮助。

Yes no problem, i.e.

59 23 31 12 * { var="value" ; export var ;  /path/2/myProgram "${var}" ; }  > /tmp/myProgLogFile.txt 2>&1

OR (similar idea with ${var} now used being 'passed in the environment' of myProgram )

59 23 31 12 * { var="value" ; export var ; myProgVar="${var}" /path/2/myProgram ; }  > /tmp/myProgLogFile.txt 2>&1

These are slightly exaggerated examples. The key point being that you need to export var for it to be visible to any sub-processes that are being launched by the process group(er) ( { ... ; } ) ... (Note that the closing ';' before the closing '}' is mandatory and that the error message if this is missing will not help you figure it out ;-) )

This is true for solaris and other old-line unixen where the /bin/sh is the borne shell (and not bash).

I hope this helps.

秋日私语 2024-12-16 13:44:52
* * * * * FOO=BAR your-command

应该这样做;它将调用 your-command,并将环境变量 $FOO 设置为 "BAR"。您必须对 crontab 中的每个命令执行此操作;我认为没有办法进行全局设置。

* * * * * FOO=BAR your-command

should do it; it will invoke your-command with the environment variable $FOO set to "BAR". You'll have to do this for each command in your crontab; I don't think there's a way to do a global setting.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文