如何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 循环不能是unset
旧foo
值并从另一个应用程序获取新值,那么如何在 while 循环中更新 foo var 而不使用像database
or之类的东西file
?
答案1
Unix 使用内存保护模型来防止程序更改属于其他程序的内存。
如果要在不同的程序之间共享数据,就必须使用进程间通信的方法。一些这样的方法包括:
- 文件系统中的文件
- 管道
- FIFO(管道的变体)
- 信号
- 共享内存
- 插座
Bash 只直接支持其中的前四个。