我正在做两个python脚本,与该主题教授给出的其他两个程序一起工作。
程序适用于此订单:
fonte -> newCodificador -> canal -> newDescodificador
名为fonte
和canal
的程序由教授制作,其他程序是我的。
问题是在终端中运行程序,程序的输出通过管道传递到最后一个。我需要在将程序newCodificador
的输出传递给canal
之前读取输出的长度,然后作为程序的参数传递。
必须是这样的:
./fonte 1000 | python newCodificador.py | ./canal <<lenght of the output of newCodificador>> | python newDescodificador.py
答案 0 :(得分:2)
首先,正如你所描述的那样,make对这个问题没用。
其次,使用单个管道无法解决此问题。管道通过同时调用所有程序,其输入/输出连接在一起来工作。但是,在canal
程序完成之前,您无法启动newCodificador.py
程序,因为在此之前您不知道输出将持续多长时间。
你必须分两步完成这些步骤:第一步是:
./fonte 1000 | python newCodificador.py > tmpfile
然后第二步将是:
./canal $(wc -c tmpfile) < tmpfile | python newDescodificador.py
或类似的东西。