将 /dev/stdin 作为参数重定向到节点脚本
redirect /dev/stdin as parameter to node script
我有一个节点脚本,通常被称为
node emitter.js "some message"
现在我正在使用 trl_fm 和 multimon_ng 来接收和解码一些无线电信息。我设法使用如下命令将输出重定向到 /dev/stdin:
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin
通过这种方式,我得到了一种控制台日志,其中解码的消息在收到时打印在一行上。
我想要实现的是每次收到消息时调用 emitter.js
并将此消息作为参数传递给 emitter.js
,但我不知道如何获取它上班。
我尝试过的事情:
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin | node emitter.js
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin > node emitter.js
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin >> node emitter.js
有什么方法可以让它工作吗?
您可以通过一些 shell 脚本连接所有内容:
#!/bin/sh
rtl_fm -M fm -f 81.200M -s 21 | \
multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin | \
while read message
do
node emitter.js "$message"
done
或者您可以修改 emitter.js
以便它从标准输入读取消息而不是使用命令行参数,在这种情况下您可以直接通过管道传输到 Node 进程(并且它也不需要启动一个每个传入消息的新节点进程)。
我有一个节点脚本,通常被称为
node emitter.js "some message"
现在我正在使用 trl_fm 和 multimon_ng 来接收和解码一些无线电信息。我设法使用如下命令将输出重定向到 /dev/stdin:
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin
通过这种方式,我得到了一种控制台日志,其中解码的消息在收到时打印在一行上。
我想要实现的是每次收到消息时调用 emitter.js
并将此消息作为参数传递给 emitter.js
,但我不知道如何获取它上班。
我尝试过的事情:
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin | node emitter.js
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin > node emitter.js
rtl_fm -M fm -f 81.200M -s 21 | multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin >> node emitter.js
有什么方法可以让它工作吗?
您可以通过一些 shell 脚本连接所有内容:
#!/bin/sh
rtl_fm -M fm -f 81.200M -s 21 | \
multimon-ng -t raw -a POCSAG2400 -f alpha /dev/stdin | \
while read message
do
node emitter.js "$message"
done
或者您可以修改 emitter.js
以便它从标准输入读取消息而不是使用命令行参数,在这种情况下您可以直接通过管道传输到 Node 进程(并且它也不需要启动一个每个传入消息的新节点进程)。