【发布时间】:2011-10-13 16:50:12
【问题描述】:
有没有办法直接在 solaris 的 crontab 中设置环境变量?
我想要的行为是让我的 crontab 中的每个脚本都知道一个特定的环境变量。我想避免创建我的所有脚本都必须调用的 setupEnvironment.sh 脚本。
【问题讨论】:
有没有办法直接在 solaris 的 crontab 中设置环境变量?
我想要的行为是让我的 crontab 中的每个脚本都知道一个特定的环境变量。我想避免创建我的所有脚本都必须调用的 setupEnvironment.sh 脚本。
【问题讨论】:
是的没问题,即
59 23 31 12 * { var="value" ; export var ; /path/2/myProgram "${var}" ; } > /tmp/myProgLogFile.txt 2>&1
或(现在使用 ${var} 的类似想法被“传递到 myProgram 的环境中”)
59 23 31 12 * { var="value" ; export var ; myProgVar="${var}" /path/2/myProgram ; } > /tmp/myProgLogFile.txt 2>&1
这些都是稍微夸张的例子。关键是您需要导出 var 以使其对进程组(er)({ ... ; })正在启动的任何子进程可见......(请注意,关闭 ';' 在关闭之前'}' 是强制性的,如果缺少此错误消息将无法帮助您解决问题 ;-) )
这适用于 /bin/sh 是承载 shell(而不是 bash)的 solaris 和其他旧线 unixen。
我希望这会有所帮助。
【讨论】:
* * * * * FOO=BAR your-command
应该这样做;它将调用您的命令,并将环境变量$FOO 设置为"BAR"。您必须为 crontab 中的每个命令执行此操作;我认为没有办法进行全局设置。
【讨论】: