【问题标题】:Detect and Enter Input on a prompt in shell script在 shell 脚本的提示符下检测并输入输入
【发布时间】:2016-12-29 11:08:03
【问题描述】:

我正在编写一个 shell 脚本,它有很多网络调用和安装。执行时,我需要为每个提示输入是/否。这很好。

但现在我需要将它作为 cron 运行。在这种情况下,我将无法为出现的每个提示提供输入。 有什么方法可以自动执行此操作,或者有某种机制可以在脚本中知道出现了提示?

【问题讨论】:

  • 如何重新设计脚本以接受选项,从而不需要用户操作?

标签: linux bash shell sh


【解决方案1】:

使用yes 命令回答交互式提示,

yes Y | ./script.sh

上面的语法不断地将字符串Y 放在所有提示中。你可以在yes之后根据需要传递字符串。

您也可以使用expect 工具来实现此目的,但您需要知道确切的提示消息以相应地捕获和响应它。如果您的提示很简单并且只需要一个简单的输入来传递yes 将是正确的工具。

您也可以使用bash 内置printf,但您需要根据必须响应的提示数量手动添加响应,例如

printf 'Y\nY\nY\n' | ./script.sh

Y 发送三个提示的响应。同样,为避免手动执行此操作,最好使用yes 命令。

【讨论】:

    猜你喜欢
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多