Linux 传播由子执行脚本完成的变量更改

Linux 传播由子执行脚本完成的变量更改,linux,bash,ubuntu,debian,sh,Linux,Bash,Ubuntu,Debian,Sh,我的问题是自我描述: script1.sh包含: #!/bin/sh export SOMEVAR=0 echo "1, SOMEVAR=$SOMEVAR" ./script2.sh echo "2, SOMEVAR=$SOMEVAR" #!/bin/sh SOMEVAR=1 script2.sh包含: #!/bin/sh export SOMEVAR=0 echo "1, SOMEVAR=$SOMEVAR" ./script2.sh echo "2, SOMEVAR=$SOMEVAR"

我的问题是自我描述:

script1.sh包含:

#!/bin/sh
export SOMEVAR=0
echo "1, SOMEVAR=$SOMEVAR"
./script2.sh
echo "2, SOMEVAR=$SOMEVAR"
#!/bin/sh
SOMEVAR=1
script2.sh包含:

#!/bin/sh
export SOMEVAR=0
echo "1, SOMEVAR=$SOMEVAR"
./script2.sh
echo "2, SOMEVAR=$SOMEVAR"
#!/bin/sh
SOMEVAR=1
/script1.sh给出了:

1, SOMEVAR=0
2, SOMEVAR=0
我想:

1, SOMEVAR=0
2, SOMEVAR=1
如何获得想要的结果?

使用
源代码
(aka.
)而不是调用脚本,子进程无法更改父进程环境:

#!/bin/sh
export SOMEVAR=0
echo "1, SOMEVAR=$SOMEVAR"
. ./script2.sh
echo "2, SOMEVAR=$SOMEVAR"
使用
source
(又称
)而不是调用脚本,子进程无法更改父进程环境:

#!/bin/sh
export SOMEVAR=0
echo "1, SOMEVAR=$SOMEVAR"
. ./script2.sh
echo "2, SOMEVAR=$SOMEVAR"