如何在不同应用程序之间共享变量

如何在不同应用程序之间共享变量

如何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

第二个应用程序将 var 更改为:

$ cat app2.sh

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

wile 循环不能是unsetfoo值并从另一个应用程序获取新值,那么如何在 while 循环中更新 foo var 而不使用像databaseor之类的东西file

答案1

Unix 使用内存保护模型来防止程序更改属于其他程序的内存。

如果要在不同的程序之间共享数据,就必须使用进程间通信的方法。一些这样的方法包括:

  • 文件系统中的文件
  • 管道
  • FIFO(管道的变体)
  • 信号
  • 共享内存
  • 插座

Bash 只直接支持其中的前四个。

相关内容