自动执行二进制文件的输入过程

自动执行二进制文件的输入过程

我在 Unix 上有一个二进制文件,在执行时会要求用户输入。该二进制文件的输入是手动给出的。我想自动化该过程,因为我已经知道输入。我无法修改二进制文件。我怎样才能做到这一点 ?这可以通过 shell 脚本甚至ant目标实现吗?

答案1

如果程序从标准输入读取(而不是直接从终端读取),您可以执行类似的操作

echo -e "answer1\nanswer2\nanswer3\n" | your_program

A这里的文档可能更具可读性:

your_program <<'EOF'
answer1
answer2
answer3
EOF
do_more_stuff

(您可以选择任何字符串来代替EOF,只需确保在<<'somestring'和 中使用相同的字符串来标记输入的结束。该字符串不得显示为输入行。输入结束标记不得缩进。)

如果您需要更复杂的交互,那么expect脚本就是您想要的。

答案2

如果你有很多输入,你也可以将这些输入放入一个文件中

in.txt:
input1
input2
...
intputn

并像这样调用二进制:

binary < in.txt

相关内容