在shell脚本中将全局变量从子节点导出到父节点

时间:2016-09-15 14:57:01

标签: linux bash shell unix centos

是否可以将父shell脚本中的变量导出到其子代码? 尝试执行以下两个脚本它总是返回给我0但我希望它返回3.我还尝试导出,设置并将变量错误添加到.bash_profile但没有成功...

test.sh

$ cat test.sh
#!/bin/bash
error=0
./envtest.sh
echo $error

envtest.sh

$ cat envtest.sh
#!/bin/bash
source ./test.sh
test=3
error=$test
echo $error

1 个答案:

答案 0 :(得分:0)

像@chepner评论的那样,没有。

当您从./envtest.sh内调用test.sh时,会创建一个新流程来运行/bin/bash ./envtest.sh,并使用副本初始化该流程的环境。无论你在envtest.sh内做什么,它只会影响自己环境中的变量;它无法触及父母环境中的变量。