可能重复:
osx/linux:管道进入两个进程?
有没有办法将一个命令的输出通过管道传输到另外两个命令的输入中,同时运行它们?
像这样的东西:
$ echo 'test' |(cat) |(cat)
test
test
我想这样做的原因是我有一个程序,它从 USB SDR 设备接收 FM 无线电信号,并将音频输出为原始 PCM 数据(如 .wav 文件,但没有标题。)因为信号不是音乐,但 POCSAG 寻呼机数据,我需要将其传送到解码器程序以恢复寻呼机文本。但是我也想听信号,所以我知道是否有任何数据进入。(否则我无法判断解码器是否损坏或没有数据正在广播。)除了将数据传输到寻呼机解码器之外,我还需要将相同的数据传输到play
命令。
目前我只知道如何做一个 - 要么将其传送到解码器并静默读取数据,要么将其传送到play
并听到它而没有看到任何解码的文本。
如何将相同的数据传送到两个命令,以便我可以阅读文本并听到音频?
我不能使用tee
,因为它只会将重复的数据写入文件,但我需要实时处理数据。