【发布时间】:2012-10-17 22:48:21
【问题描述】:
有没有办法将一个命令的输出通过管道传输到另外两个命令的输入中,同时运行它们?
类似这样的:
$ echo 'test' |(cat) |(cat)
test
test
我想这样做的原因是我有一个程序,它从 USB SDR 设备接收 FM 无线电信号,并将音频输出为原始 PCM 数据(如 .wav 文件,但没有标题。)因为信号不是音乐而是 POCSAG 寻呼机数据,我需要将其传送到解码器程序以恢复寻呼机文本。但是我也想听信号,所以我知道是否有任何数据进来。 (否则我无法判断解码器是否损坏或没有数据正在广播。)因此,除了将数据传输到寻呼机解码器之外,我还需要将相同的数据传输到 play 命令。
目前我只知道如何做一个 - 要么将其传输到解码器并静默读取数据,要么将其传输到 play 并在没有看到任何解码文本的情况下听到它。
如何将相同的数据传送到两个命令,以便我可以阅读文本并听到音频?
我不能使用tee,因为它只会将重复的数据写入文件,但我需要实时处理数据。
【问题讨论】:
-
@Mat:你能在这里重新发布你的答案吗?这对我有用,似乎是一个非常好的解决方案。
-
是的,我认为这是那个的副本