2012-01-30 64 views
1

我有一个封闭的源代码应用程序,需要按下“y”键后才能开始工作。 我需要以“y”字符被接受后“正常”用户输入被接受的方式自动执行此操作。如何将文件作为标准输入脚本编写到应用程序中,然后使用真实标准输入进行用户输入?

application < echo "y" 

留下无法获得用户输入

我想我需要一个模拟

echo "y" 

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

部分脚本的应用的答案可能在这个SO问题中,但我怎样才能使它适应现有的应用程序?

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

回答

3

我认为,你真正需要的是让你自动完成按下y关键的,这之后,在交互模式下输入的工具。请参阅expect以获取此类工具的示例。

3

为了充实jcollado的建议:

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

我需要作进一步调查,因为这是在X上运行的GUI应用程序从一个bash脚本启动。我将在我尝试过您的解决方案时进行更新。 – rob 2012-02-01 13:55:52

+0

@rob,'expect'无法控制GUI应用程序。你可能在你的问题中提到过。 – 2012-02-01 14:49:07

+0

它似乎很合乎逻辑, 运行脚本 脚本执行应用程序,这恰好是GUI 正常标准输出标准输出。 我可能会怎么样, 我最终使用了xdotool,它将按名称查找X窗口并发送按键。 是否值得将此问题标记为删除? – rob 2012-02-02 09:40:03

相关问题