是否可以将父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
答案 0 :(得分:0)
像@chepner评论的那样,没有。
当您从./envtest.sh
内调用test.sh
时,会创建一个新流程来运行/bin/bash ./envtest.sh
,并使用副本初始化该流程的环境来自父进程的每个环境变量的em>。无论你在envtest.sh
内做什么,它只会影响自己环境中的变量;它无法触及父母环境中的变量。