相关疑难解决方法(0)

管道输出到两个不同的命令

可能重复:
osx/linux:管道分为两个进程?

有没有办法将输出从一个命令输入到另外两个命令的输入中,同时运行它们?

像这样的东西:

$ echo 'test' |(cat) |(cat)
test
test
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是我有一个程序从USB SDR设备接收FM无线电信号,并输出音频作为原始PCM数据(如.wav文件,但没有标题.)由于信号不是音乐但POCSAG寻呼机数据,我需要将其传输到解码器程序以恢复寻呼机文本.但是我也想听信号,所以我知道是否有任何数据进入.(否则我无法判断解码器是否损坏或者没有广播数据.)因此,除了将数据传输到寻呼机解码器之外,我还需要将相同的数据传输到play命令.

目前我只知道如何做一个 - 将其传输到解码器并静默读取数据,或将其传输到play并听到它而不会看到任何解码文本.

如何将相同的数据传输到两个命令,以便我可以阅读文本并听到音频?

我无法使用tee,因为它只将重复数据写入文件,但我需要实时处理数据.

bash pipe tee

24
推荐指数
3
解决办法
2万
查看次数

OS X/Linux:管道分为两个进程?

我知道

program1 | program2
Run Code Online (Sandbox Code Playgroud)

program1 | tee outputfile | program2
Run Code Online (Sandbox Code Playgroud)

但有没有办法将program1的输出提供给program2和program3?

unix macos shell pipe

21
推荐指数
3
解决办法
2988
查看次数

标签 统计

pipe ×2

bash ×1

macos ×1

shell ×1

tee ×1

unix ×1