导出用于cron的USER env变量

时间:2012-11-21 13:25:18

标签: bash ubuntu cron

我有一个脚本需要设置env变量USER。由于脚本由多个用户使用,我不能只在脚本的开头做export USER=xxx。我可以在crontab中定义,但我只是想知道是否有一种很好的方式将其拉入。

我尝试采购.bashrc.profile,但既没有定义USER,也没有定义Ubuntu .bashrc只返回非交互式shell。

3 个答案:

答案 0 :(得分:5)

你可以通过写在脚本顶部(Bashism)来解决它:

USER=$(whoami)

或旧式:

USER=`whoami`

...假设whoami中有PATH,也可以在crontab中设置,就像几个(大多数?)其他变量一样。即您也可以在crontab本身设置变量(至少在Vixies cron中) - 例如,请参阅here

答案 1 :(得分:4)

使用env命令。您的crontab条目可能如下所示:

* * * * * env USER=foouser /path/to/script.sh

答案 2 :(得分:0)

您可以在命令之前指定环境变量。这样,它不会影响crontab中的任何其他内容。

user.sh:

#!/bin/sh
echo $USER

cli:

USER=foo ./user.sh ## outputs "foo"