バックグラウンドで実行されているプロセスを使用し&
、そのプロセスがフォアグラウンドプロセスで使用されているデータにアクセスできるようにしたいと思います。
例は次のとおりです。
A() {
echo "$a"
}
a="abc"
while true; do echo "$(A)"; sleep 10; done &
a="xyz"
バックグラウンドプロセスの出力は常に「abc」です。a
バックグラウンドジョブの開始後にバックグラウンドジョブにどの値を入力するかは重要ではありません。この例では、最初の反復で「abc」を出力し、10秒後に出力は「xyz」にする必要があります。
Windowsでは、スレッドのように動作するバックグラウンドプロセスが必要です。このスレッドにはすべてのデータへのフルアクセス権があります(ただし、UIに影響を与えるデータは変更できません)。可能ですか?
答え1
これを行う最善の方法はファイルを使用することです。別の方法には、名前付きパイプと(一部のシェルの場合)共同プロセスがあります。