如何通过 shell 脚本与程序进行双向(读写)交互?

如何通过 shell 脚本与程序进行双向(读写)交互?

因此,通常当您使用命令重定向输入时,find . | grep -i pineapple它只会评估find .,并且包含 的所有输入grep -i pineapple

但是,我需要编写一个脚本来运行程序,为其提供一些输入,读取一些输出,保持程序运行,然后根据之前的输出发送更多输入。例如,考虑一个使用scanf两次的 C 程序,如果我正常重定向,我必须scanf在运行程序之前指定两次调用的输入,但是我想给第二次调用 scanf 的内容取决于程序在两次调用之间的输出来电。

我尝试这样做,./pineapple >&0 <&1 &这样我就可以作为标准输出和标准输入访问程序输入和输出,但这不起作用,不确定我的期望是什么。输入采用二进制格式,对于相同的输入,程序输出的内容并不总是相同(如果相关的话)。有什么简单的方法可以做到我所描述的吗?

相关内容