我有一个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

10-07 16:42