我有两个shell脚本:
首先:1.sh
,内容如下:
export PROP="my val"
第二:2.sh
,内容如下:
./1.sh
echo $PROP
两者都有执行权限。当我运行2.sh
时,我希望PROP
设置和导出的环境变量1.sh
对echo $PROP
中的2.sh
语句可见,并且会打印出来。但输出为空白表示PROP对2.sh
不可见。这有什么不对?
答案 0 :(得分:2)
尝试在当前流程中获取脚本:
. 1.sh
echo $PROP
然后你可以完全放弃export
:
PROP="my val"
问题是您在新的shell进程中运行1.sh
,因此当进程结束时,它对环境所做的任何更改都将丢失。具体来说,export
使变量可用于当前进程的 children ,因此在这种情况下,它不会影响2.sh
(父进程)。