【问题标题】:Bash passing information from script to scriptBash 在脚本之间传递信息
【发布时间】:2014-06-02 06:54:46
【问题描述】:

我有一个 bash CGI 记录与我的服务器的连接,我希望在请求/稳定/提供新连接时,此脚本将参数/变量传递给在后台运行的另一个脚本?这可能吗?我该怎么做?

我已经尝试过环境变量,但这只能在同一个 shell 中工作,我不能确定两者会在同一个 shell 上运行。我尝试写入文件,但我怎么知道文件何时被编辑,因此允许第二个脚本执行命令。

我开始发疯了,这一定是可能的我不敢相信“程序”不能共享信息......:O

也许我采取了错误的方法,有人可以建议吗?

谢谢, 马可·P.

【问题讨论】:

  • 后台脚本是否只是在等待来自 CGI 脚本的输入?

标签: linux bash shell arguments cgi


【解决方案1】:

命名管道可能是一种方式,尽管它是阻塞的:

设置:

mkfifo /path/to/named/pipe

cgi 脚本:

echo "some data" > /path/to/named/pipe   # blocks until other script consumes!

后台脚本:

while :; do
    read data < /path/to/named/pipe      # blocks until cgi script produces!
    do_stuff_with "$data"
done

【讨论】:

  • inotify-tools 是另一种可能性,以便在新文件到达监视目录时后台脚本可以唤醒并执行操作。
  • 感谢您的评论,事实上,我刚刚发现 fifo 总是在周围看到它们从未检查过它们,:P 我试试看,还有关于 inotify 发现它非常有趣的唯一我看到的问题是我必须运行它并且在我结束命令之前它不会给我信息我正在使用 inotifywatch (我认为)。我如何使用它来实时获取信息?指挥运行时?嗯,fifo又来了,对吗? :P 非常感谢!
  • 非常感谢!这工作得很好......每天我越来越喜欢 bash,为什么人们仍然尝试使用编译器! xP 我想我们首先需要拥有 Linux xD
猜你喜欢
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 2018-01-25
  • 1970-01-01
相关资源
最近更新 更多