环境变量未导出

时间:2013-09-16 05:34:16

标签: linux bash shell

我设置了一个变量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的子代。

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

1 个答案:

答案 0 :(得分:3)

您的comment表示您正在使用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.