导出用户环境变量以在 cron 中使用



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

我尝试采购.bashrc.profile,但都没有定义 USER,加上在 Ubuntu 上.bashrc只是在非交互式 shell 上返回。

你可以通过在脚本的顶部写下(Bashism)来解决这个问题:

USER=$(whoami)

或旧式:

USER=`whoami`

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

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

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

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

user.sh:

#!/bin/sh
echo $USER

命令行:

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

相关内容

  • 没有找到相关文章

最新更新