linux - 是否可以在子 shell 中修改父变量?

标签 linux bash shell

这是一个例子:

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/

相关文章:

bash - 计算shell脚本中2个不同文件夹中具有相同内容的文件数量

c - Linux。 C 中的管道。将数据发送到另一个进程。写作和阅读

php - 关于托管的 XDebug - 安全性?

php - Bash 字符串删除特定字符

shell - 使用 powershell {send-mailmessage} 检查 SMTP 服务器是否正常工作

linux - 是否可以反向引用扩展?

php - 如何使用 PHP exec() 获取正在运行的 php 脚本列表?

c - 如何在linux中使用C分配大数组

bash - 使用 ffmpeg 将 mkv 转换为 mp4 有时会丢失视频

bash - 如何在 Bash 中迭代关联数组