这是一个例子:
bash-4.2$ export i=0
bash-4.2$ while :; do let i=i+1; done &
[1] 29668
bash-4.2$ echo $i
0
bash-4.2$ kill %1
bash-4.2$ exit
在这里,我开始的工作不断增加 $i
但只是作为一个局部变量。我知道在 bash 中没有指针或引用这样的东西,所以我的问题是如何去做?
如果以某种方式可行,则意味着可以同时在多个线程中访问和写入一个变量,这就是我想要实现的目标。有没有办法防止像关键部分(在 shell/bash 中)这样的内存读/写问题?
最佳答案
Bash 4 支持 coprocesses这只是使用双向管道的幕后方法。
关于linux - 是否可以在子 shell 中修改父变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11018172/