【问题标题】:Respond to multiple y/n script promts; shellscript响应多个 y/n 脚本提示;外壳脚本
【发布时间】:2017-09-14 10:14:46
【问题描述】:

我想自动化一系列命令,其中一个需要多个用户输入是/否。如何编写脚本以便我的脚本自动选择多个答案?

来自命令checkinstall的示例:

Do you want me to list them? [n]:(我想在这里回答 no/n)

Should I exclude them from the package? [n]:(我想在这里回答yes/y)

如您所见,checkinstall 命令需要多个输入。当我只想给出命令 1 输入时,我使用 this 方法。

【问题讨论】:

    标签: bash shell sh


    【解决方案1】:

    在此处使用文档<<

    checkinstall <<EOF
    no
    yes
    EOF
    

    【讨论】:

      【解决方案2】:

      你可以用expect编写脚本

      #!/usr/bin/expect
      
      set timeout 20
      
      spawn "./application"
      
      expect "Are you a human?: " { send "yes\r" }
      expect "Are you a android :" { send "no\r" }
      
      interact
      

      【讨论】:

        【解决方案3】:

        试试yes

        yes $'n\ny' | checkinstall
        

        如果您多次调用命令,也可以使用。

        yes $'n\ny' | for n in 1 2 3; do checkinstall; done
        

        【讨论】:

          猜你喜欢
          • 2019-04-22
          • 1970-01-01
          • 1970-01-01
          • 2012-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多