我在 Unix 上有一个二进制文件,它在执行时要求用户输入。这个二进制文件的输入是手动给出的。我想自动化这个过程,因为我已经知道输入了。我无法修改二进制文件。我怎样才能做到这一点 ?这是否可以通过 shell 脚本甚至ant目标实现?
如果程序从标准输入读取(而不是直接从终端读取),您可以执行以下操作
echo -e "answer1\nanswer2\nanswer3\n" | your_program
Run Code Online (Sandbox Code Playgroud)
一个here文档可能更容易阅读:
your_program <<'EOF'
answer1
answer2
answer3
EOF
do_more_stuff
Run Code Online (Sandbox Code Playgroud)
(您可以选择任何字符串而不是EOF,只需确保使用相同的 in<<'somestring'和 标记输入的结尾。该字符串不得作为输入行出现。输入结束标记不得缩进。)
如果您需要更复杂的交互,那么expect脚本就是您想要的。