繁体   English   中英

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

[英]How to preserve the change in a variable that made in child process for parent process in a bash shell?

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

我定义一个变量如下:

var=10

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

export var

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

bash
var=20

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

子进程不能更改父进程中的环境变量。 儿童可以获得父母环境的副本,任何更改仅限于儿童的副本。

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

孩子获得自己的变量副本,因此不能为其他进程更改它们 - 甚至不能更改父进程。 向父母传递内容的最直接方式(可能)是使用临时文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM