Bash读取套接字/ dev / rfcomm0

时间:2018-03-02 08:37:46

标签: bash sockets bluetooth disconnect

我正在处理通过我的覆盆子的蓝牙插槽从我的Android应用程序处理的数据。

长话短说明我能够建立连接,发送数据(JSON字符串)。当我在 / dev / rfcomm0 的套接字中使用tail / cat时,我可以读取数据但是当我把它放在脚本中以不断检查文件是否有新数据时我不明白如何自动停止读取套接字。我试图将3写入var 输入

Exec 3<> / dev / rfcomm0  3

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

我知道这对于开始阅读插座是正常的,但我已经全神贯注地找到了一种停止阅读的方法。

1 个答案:

答案 0 :(得分:1)

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

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