或者更具体地说,是否有一种方法可以从一个命令中获取stdout,运行另一个命令,然后使用stdout作为下一个命令的stdin? 例如 cat file.txt | run_command | grep“foo”
对于为什么有人想要这样做,这似乎令人困惑。这是我想要做的:
我通过另一台计算机(遥控器)将网络摄像头送到我的本地计算机 ssh user @ remote ffmpeg -b 100k -an -f video4linux2 -s 320x280 -r 10 -i / dev / video0 -b 100k -f ogg - | vlc -
我正在尝试反过来。因此,从我的网络摄像头(本地)发送一个源以显示在远程计算机上。 它尝试了: ffmpeg -b 100k -an -f video4linux2 -s 320x280 -r 10 -i / dev / video0 -b 100k -f ogg - | ssh user @ remote vlc -
这是行不通的,因为在我启动vlc之前,我必须在远程机器上“导出DISPLAY =:0.0”。因此,我试图在远程计算机上输出ffmpeg到vlc的输出,然后导出该ssh'session'的DISPLAY变量。 另外如果有另一种方法可以做到这一点(除了在远程机器上使用ssh来使用第一个命令)我也很乐意尝试它。(如果有办法做同样的事情,那么我也没有这么多我我会很感激信息,但这与问题并不相关)在此先感谢。 :)
答案 0 :(得分:0)
要将source
的输出作为输入传递给sink
,因为run_command
必须在sink
运行之前结束:
source | { run_command &>/dev/null; sink; }