我有一个C程序,我想运行,而不必手动键入命令。我有4个命令(5,如果你计数退出程序),我想给程序,我不知道从哪里开始。我见过一些像
./a.out <<<'name'
一根绳子传过来,但对我来说不太管用。
我遇到的其他问题使这一点更加困难,其中一个命令将给出一个输出,而该输出需要成为后面命令的一部分。如果我有权访问源代码,我可以在一些循环和计数器中使用蛮力,所以我试图获得它,但目前我仍在工作中没有它。我在想用bash脚本可以做到这一点,但我不知道那会是什么。
最佳答案
在简单的情况下,bash脚本是一种可能性:在coproc
中运行可执行文件(需要版本4)。一个简短的例子:
#!/bin/bash
coproc ./parrot
echo aaa >&${COPROC[1]}
read result <&${COPROC[0]}
echo $result
echo exit >&${COPROC[1]}
使用
parrot
(测试可执行文件):#!/bin/bash
while [ true ]; do
read var
if [ "$var" = "exit" ]; then exit 0; fi
echo $var
done
对于更严重的情况,请使用
expect
。