如何保留在bash单元格中父进程的子进程中所做的变量的更改?
我按如下方式定义变量:
var=10
我导出它以在子进程中访问它。
export var
现在我创建一个子进程并在子进程中更改$ var。
bash
var=20
$ var中的更改会保留,直到子进程退出。当我退出子进程时,更改也会被覆盖。我想保留父进程的更改。告诉我怎么做?
答案 0 :(得分:2)
子进程无法更改其父级中的环境变量。孩子们可以获得父母的副本。环境和任何更改仅适用于儿童的副本。
如果您想影响父母,您必须以某种方式与父母沟通。这可以通过管道或UNIX套接字或共享内存或其他形式的进程间通信。最简单的方法可能是将新值写入stdout并让父对象读取并更改变量本身。
答案 1 :(得分:1)
孩子获得自己的变量副本,因此不能为其他过程更改它们 - 甚至不能更改父项。将某些东西传递给父母的最直接的方式(可能)是使用临时文件。