Unix 子进程能否将环境变量传递回父进程

Unix 子进程能否将环境变量传递回父进程,unix,shell,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。这可能吗?如果只是使用shell脚本,通常的做法是使用来“源代码”t2.sh。t2.sh(注意和命令开头的空格)。这将运行t2.s

考虑以下几点:

$ 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。这可能吗?

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