命令行管道四个命令

时间:2015-01-17 19:25:30

标签: python command-line

我正在做两个python脚本,与该主题教授给出的其他两个程序一起工作。

程序适用于此订单:

fonte -> newCodificador -> canal -> newDescodificador

名为fontecanal的程序由教授制作,其他程序是我的。

问题是在终端中运行程序,程序的输出通过管道传递到最后一个。我需要在将程序newCodificador的输出传递给canal之前读取输出的长度,然后作为程序的参数传递。

必须是这样的:

./fonte 1000 | python newCodificador.py | ./canal <<lenght of the output of newCodificador>> | python newDescodificador.py

1 个答案:

答案 0 :(得分:2)

首先,正如你所描述的那样,make对这个问题没用。

其次,使用单个管道无法解决此问题。管道通过同时调用所有程序,其输入/输出连接在一起来工作。但是,在canal程序完成之前,您无法启动newCodificador.py程序,因为在此之前您不知道输出将持续多长时间。

必须分两步完成这些步骤:第一步是:

./fonte 1000 | python newCodificador.py > tmpfile

然后第二步将是:

./canal $(wc -c tmpfile) < tmpfile | python newDescodificador.py

或类似的东西。