我的crontab中有这个文件:
* * * * * cd /etc && . ./cron.sh>>cron.log
在我的cron.sh(可执行文件)中,我有:
#!/bin/sh
echo "hello world"
export MyVar="abcd"
它既可以与cron一起运行,也可以手动运行,但是仅当我使用以下命令手动运行时,才设置环境变量:
. ./cron.sh
任何人都可以帮忙。我知道它与源有关,但我无法弄清楚。
这也不起作用:
* * * * * cd /etc && sh ./cron.sh>>cron.log
答案 0 :(得分:5)
.
将在当前shell中导出变量 ,它是cron
生成的变量,而不是您的变量。
如果要在shell中添加额外的变量,请使用~/.profile
等(特别是所有用户共享的/etc/profile
)。
答案 1 :(得分:2)
我正在尝试为所有用户设置一个变量
您不能通过cron作业来做到这一点。
实际上,通常您根本无法做到。 Shell的环境变量不能从Shell外部设置。 UNIX / Linux操作系统体系结构不允许。
您可以可以通过/etc/profile
为所有用户设置环境变量,除了...
/etc/profile
文件仅在用户登录时执行,并且