使用exec执行命令设置变量

时间:2014-04-04 17:48:32

标签: bash syntax exec

您可以为单个命令设置变量,如下所示:

MY_VARIABLE=my_value ./my_script.sh

你可以转到另一个这样的脚本:

exec ./my_script.sh

但是当我尝试这样做时:

exec MY_VARIABLE=my_value ./my_script.sh

我收到错误:

exec: MY_VARIABLE=my_value: not found

为什么?
有没有办法做到这一点?

2 个答案:

答案 0 :(得分:34)

您需要使用env来指定环境变量:

exec env MY_VARIABLE=my_value ./my_script.sh

如果您希望脚本以空环境或仅使用指定变量开头,请使用-i选项。

来自man env

   env - run a program in a modified environment

答案 1 :(得分:6)

在bash中,您可以通过将赋值放在命令的开头来为命令设置环境变量。这与exec的任何其他命令的工作方式相同,因此您可以编写:

MYVARIABLE=my_value exec ./my_script.sh
相关问题