代码之家  ›  专栏  ›  技术社区  ›  Roel

Bash读取套接字/开发/rfcomm0

  •  0
  • Roel  · 技术社区  · 8 年前

    我正在处理通过我的raspberry的蓝牙插孔从android应用程序中获取的数据。

    长话短说,我能够建立连接,发送数据(JSON字符串)。当我在位于的插座中安装tail/cat时,我可以读取数据 /开发/rfcomm0 但是,当我将其放入脚本中以不断检查文件是否有新数据时,我不知道如何自动停止读取套接字。我正在尝试将3写入var 输入 :

    执行3<&燃气轮机/开发/rfcomm0 3.

    但我实际上需要将收到的JSON字符串发送到另一个程序。因此,每次到达JSON字符串时,我都需要停止读取,并用JSON字符串启动最后一个进程。

    我知道这对于开始读取套接字是正常的,但我一直在观察,以找到停止读取的方法。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Ljm Dullaart    8 年前

    你为什么要停止阅读?你似乎需要的是

    while read input ; do
        do_something_with "$input"
    done <&3
    

    这样,shell将继续读取,对于每一行,您都可以将字符串发送给另一个程序。

    如果您的 other_program 读取stdin,您可以考虑使用fifo:

    mkfifo fifootje
    cat fifootje  | other_program &
    while read input ; do
        echo "$input" >>fifootje
    done <&3