bash环境变量未导出

时间:2015-07-01 06:17:27

标签: bash shell environment-variables

我有两个shell脚本:

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

export PROP="my val"

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

./1.sh
echo $PROP

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

1 个答案:

答案 0 :(得分:2)

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

. 1.sh
echo $PROP

然后你可以完全放弃export

PROP="my val"

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