使用exec执行命令设置变量

问题描述 投票:12回答:2

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

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

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

bash syntax exec
2个回答
36
投票

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

exec env MY_VARIABLE=my_value ./my_script.sh

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

来自man env

   env - run a program in a modified environment

6
投票

在bash中,您可以通过将赋值放在命令的开头来为命令设置环境变量。对于exec,这和其他命令一样,所以你写:

MYVARIABLE=my_value exec ./my_script.sh
© www.soinside.com 2019 - 2024. All rights reserved.