从后台进程访问前台数据

从后台进程访问前台数据

我想使用 在后台运行一个进程,&并让该进程访问前台进程中使用的数据。

这是一个例子:

A() {
  echo "$a"
}
a="abc"
while true; do echo "$(A)"; sleep 10; done &
a="xyz"

后台进程的输出始终是“abc”。a后台任务启动后放入什么值并不重要。在示例中,我希望第一次迭代输出“abc”,10 秒后输出应为“xyz”。

我想要一个后台进程,其行为就像 Windows 中的线程一样。该线程可以完全访问所有数据(但不得更改会影响 UI 的数据)。这可能吗?

答案1

做到这一点的最好方法就是使用文件。其他方法包括命名管道和(在某些 shell 中)协进程。

相关内容