关于shell:bash环境变量未导出

bash environment variables not getting exported

本问题已经有最佳答案,请猛点这里访问。

我有两个shell脚本:

第一:1.sh,内容如下:

1
export PROP="my val"

第二:2.sh,内容如下:

1
2
./1.sh
echo $PROP

两者都具有执行权限。当我运行2.sh时,我希望由1.sh设置和导出的环境变量PROP2.sh中的echo $PROP语句可见,并将被打印出来。但输出为空白,表示2.sh看不到Prop。这里怎么了?


尝试在当前进程中获取脚本:

1
2
. 1.sh
echo $PROP

然后你可以把export放在一起:

1
PROP="my val"

问题是,您正在一个新的shell进程中运行1.sh,因此当进程结束时,它对环境所做的任何更改都将丢失。具体来说,export使当前进程的子进程可以使用该变量,因此在这种情况下,它不会影响2.sh(父进程)。