如果我有一个 C++ 程序,它希望在运行时从控制台输入 cin,我如何才能从 shell 脚本自动输入这个输入?我还需要将其输出存储在一个文件中,但这部分很简单。我研究了不同的方法,包括将它回显到 /proc 中 pid 的文件描述符,但似乎没有任何效果。
这是我到目前为止所拥有的:
#!/bin/sh
g++ -o runme source.cpp
echo <<EOT | ./runme > output
expected program input
more expected program input
even more
EOT
请注意,每一行输入都需要程序中的 cin 读取“输入按键”,我假设这应该发生,因为脚本中的程序输入由换行符分隔。在这里,程序被执行,但无论我在 EOT 之前放置了什么,都会在文件中产生相同的输出,因此它没有按预期输入到程序的 cin 中。