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