Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何将文件作为stdin脚本写入应用程序,然后使用真正的stdin进行用户输入?_Bash_Stdin - Fatal编程技术网

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

Bash 如何将文件作为stdin脚本写入应用程序,然后使用真正的stdin进行用户输入?,bash,stdin,Bash,Stdin,我有一个封闭源代码的应用程序,需要在加载后按下y键才能开始工作。 我需要以这样一种方式自动执行此操作,即在接受y字符后,接受“正常”用户输入 application < echo "y" 然后路由用户输入,即/dev/tty 答案的一部分可能在这个问题中,但我如何使其适应现有的应用程序 我认为你真正需要的是一个工具,让你自动按下y键,然后进入互动模式。请看一看此类工具的示例。我认为您真正需要的是一个工具,使您能够自动按下y键,然后进入交互模式。请看一看此类工具的示例。以充实jcollad

我有一个封闭源代码的应用程序,需要在加载后按下y键才能开始工作。 我需要以这样一种方式自动执行此操作,即在接受y字符后,接受“正常”用户输入

application < echo "y"
然后路由用户输入,即/dev/tty

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


我认为你真正需要的是一个工具,让你自动按下y键,然后进入互动模式。请看一看此类工具的示例。

我认为您真正需要的是一个工具,使您能够自动按下y键,然后进入交互模式。请看一看此类工具的示例。

以充实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

为了充实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

我需要进一步研究这一点,因为这是针对从bash脚本启动的运行在X中的GUI应用程序。我将在尝试您的解决方案后更新。@rob,expect无法控制GUI应用程序。你可能在你的问题中提到过,运行script-execute应用程序似乎很合乎逻辑,它恰好是GUI标准的stdin-stdout。我怎么可能错了,我最终使用了xdool,它将按名称查找X窗口并发送按键。是否值得将这个问题标记为删除?我需要进一步研究,因为这是针对从bash脚本启动的运行在X中的GUI应用程序。我将在尝试您的解决方案后更新。@rob,expect无法控制GUI应用程序。你可能在你的问题中提到过,运行script-execute应用程序似乎很合乎逻辑,它恰好是GUI标准的stdin-stdout。我怎么可能错了,我最终使用了xdool,它将按名称查找X窗口并发送按键。是否值得将此问题标记为删除?