我已经设置了一个变量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变量的外壳中调用此脚本。但是,似乎未初始化MY_HOME。为什么会这样呢?
我的学习是,导出应使该变量对子进程可见。./script生成一个子shell,该子shell是当前shell的子代。
我想念什么吗?为什么这对我不起作用?
您的评论表明您正在使用执行脚本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.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句