異なるアプリケーション間で変数を共有する方法

異なるアプリケーション間で変数を共有する方法

foo他のアプリケーションで変数を更新する方法は?

$ cat app1.sh

#!/bin/bash
//foo can be changed from the internet, but for example, I give it foo=1
export foo=1
while true
do
   echo "$foo+2"
   sleep 5
done

2番目のアプリケーションはvarを次のように変更します。

$ cat app2.sh

#!/bin/bash
export foo=$foo+100

unsetwileループは古い値にすることはできず、他のアプリケーションから新しい値を取得することはできません。それでは、または同じものをfoo使わずにwhileループでfoo varを更新する方法は何ですか?databasefile

答え1

Unixは、プログラムが他のプログラムに属するメモリを変更するのを防ぐために、メモリ保護モデルを使用します。

異なるプログラム間でデータを共有するには、プロセス間通信を使用する必要があります。そのような方法のいくつかは次のとおりです。

  • ファイルシステムのファイル
  • 管路
  • FIFO(パイプ変形)
  • シグナル
  • 共有メモリ
  • ソケット

Bashはこれらのうち最初の4つだけを直接サポートしています。

関連情報