子进程是否可以将环境变量传递回父进程

时间:2010-09-22 11:49:47

标签: unix shell

请考虑以下事项:

$ cat t.sh
echo "This is from t.sh"
eval "t2.sh"
echo "\$FROM_t2=$FROM_t2"

$ cat t2.sh
echo "This is from t2.sh"
export FROM_t2="env_var_from_t2"

我想将t2.sh创建的“FROM_t2”的值读入t.sh.这可能吗?

1 个答案:

答案 0 :(得分:4)

如果您只是使用shell脚本,通常的方法是使用. t2.sh“来源”t2.sh(注意.和命令开头的空格)。这会运行t2.sh而不启动新进程,就像刚刚将t2.sh粘贴到t1.sh中一样,因此t1.sh可以看到所有已更改的变量。 “。”是一个shell内置命令的名称,你需要一个空格,就像任何其他命令一样。如果您想要更明确一些,也可以写source而不是.