Shell script - input redirection when prompted by the shell script multiple times
我们有一个shell脚本,它希望在提示时输入多个用户输入。例如一开始它可能要求执行操作。当给出这个答案时,它可能会要求输入用户名,然后输入密码等。我们希望通过使用文件重定向提供输入来自动执行此任务,即。脚本<输入。输入文件将包含脚本可能会问的不同问题的所有答案。但是它不工作,shell脚本只读取输入文件的第一行。我需要改变什么或使用什么来实现这一目标?
您可以使用的是程序
更多关于谷歌和这里的信息:
- http://www.linuxjournal.com/article/3065
- 手册页:http://linux.die.net/man/1/expect
感谢大家的评论和回答。我试过了,但是没用。所以我要提到什么对我们有用。这是我们的工作流程-1。在Linux提示下,键入命令,在我们的例子中是connect()。2。一旦给出了该命令,脚本就会请求该命令的参数,如端口号、服务器等。我们必须手动提供该参数3。然后我们再次看到一个shell提示和另一个输入。在我们的例子中,我们可以使用文件重定向在提示符处提供第一个命令connect(),但是参数传递是一个问题。我们找到的解决方案是只在connect的括号内提供参数,即重定向的输入文件将包含-connect()。这对我们有用。
你说"它只读取输入的第一行"。
所以你必须杀了剧本?
是否有输出?(特别是错误信息)?
是否将stderr重定向到/dev/null或其他位置?如果是这样的话,就去掉它。
这是高概率助手…修改顶级脚本,在第2行添加
有没有可能输入文件是在Windows环境中创建的,而CR-LF对会弄乱预期的输入?
我希望这有帮助。