如何将文件编写为应用程序的stdin,然后使用真正的stdin进行用户输入



我有一个闭源应用程序,它需要在加载后按下"y"键才能开始工作。我需要以这样一种方式自动化这一点,即在"y"字符被接受后,"正常"用户输入被接受。

application < echo "y"

使应用程序无法访问用户输入

我想我需要一个模仿的脚本

echo "y"

然后路由用户输入,即/dev/tty

部分答案可能在这个SO问题中,但我如何将其适应现有的应用程序?

获取user-input-after-stdin-has-been-redirected-in-a-bourne-script

我认为您真正需要的是一个工具,可以让您自动按下y键,然后进入交互式模式。请看一下expect,以获得这样一个工具的示例。

充实jcollado的建议:

#!/usr/bin/expect -f
spawn application -with -options
expect "prompt where you have to enter y"
send -- "yr"    # the "r" represents the user "hitting enter"
interact

最新更新