如何保留在bash shell中为父进程的子进程创建的变量中的更改?

时间:2015-03-25 14:49:22

标签: linux bash shell

如何保留在bash单元格中父进程的子进程中所做的变量的更改?

我按如下方式定义变量:

var=10

我导出它以在子进程中访问它。

export var

现在我创建一个子进程并在子进程中更改$ var。

bash
var=20

$ var中的更改会保留,直到子进程退出。当我退出子进程时,更改也会被覆盖。我想保留父进程的更改。告诉我怎么做?

2 个答案:

答案 0 :(得分:2)

子进程无法更改其父级中的环境变量。孩子们可以获得父母的副本。环境和任何更改仅适用于儿童的副本。

如果您想影响父母,您必须以某种方式与父母沟通。这可以通过管道或UNIX套接字或共享内存或其他形式的进程间通信。最简单的方法可能是将新值写入stdout并让父对象读取并更改变量本身。

答案 1 :(得分:1)

孩子获得自己的变量副本,因此不能为其他过程更改它们 - 甚至不能更改父项。将某些东西传递给父母的最直接的方式(可能)是使用临时文件。