0

我设置了一个变量 MY_HOME 并且我也导出了它。因此,导出它应该使其对所有子进程可见。

我有以下脚本。

echo "MY_HOME:" $MY_HOME
if [ "$MY_HOME" = "" ];
then
    echo "ENVIRONMENT VARIABLE NOT SET"
    echo "READ THE DOCUMENTATION FOR THE ERROR"
    exit 0 
fi

这个脚本是从我导出 MY_HOME 变量的 shell 调用的。但似乎 MY_HOME 没有初始化。为什么会这样?

我的学习是,导出应该使变量对子进程可见。并且 ./script 生成一个子 shell,它是当前 shell 的子 shell。

我错过了什么吗?为什么这对我不起作用?

4

1 回答 1

3

您的评论说您正在使用sudo.

在执行脚本时指定-E选项。sudo

   -E          The -E (preserve environment) option indicates to the
               security policy that the user wishes to preserve their
               existing environment variables.  The security policy may
               return an error if the -E option is specified and the user
               does not have permission to preserve the environment.
于 2013-09-16T05:52:30.870 回答