bash 环境变量未导出

bash environment variables not getting exported

我有两个 shell 脚本:

首先:1.sh,内容如下:

export PROP="my val"

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

./1.sh
echo $PROP

两者都有执行权限。当我 运行 2.sh 时,我期望 1.sh 设置和导出的环境变量 PROP2.sh 中的 echo $PROP 语句可见并且会被打印出来。但输出为空白,表明 PROP 对 2.sh 不可见。这里有什么问题?

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

. 1.sh
echo $PROP

然后您可以完全放弃 export

PROP="my val"

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