如何在Ruby Expect脚本中使用条件

野账单

我在Ruby中玩的是Expect,但是我对于如何根据要登录的设备的行为来分支代码感到有些困惑。我怎么能不这样说foo.run,如果我得到正确的提示之下>,但运行foo.fail,如果我不?更进一步,如何评估输入密码和收到>提示之间返回的所有文本有没有办法查看设备以某种方式打印的所有文本?

   def device_test(password)
      $expect_verbose = true
      PTY.spawn("ssh my-router") do |reader, writer, pid|
         reader.expect("password:")
         writer.puts(password)
         reader.expect(">")        
         puts "logged in"
         sleep(15)
      end
   end
格伦·杰克曼

看来Expect方法只能查找单个模式(不同于Tcl Expect库,您可以在该库中同时查找多个模式)。

看来您必须传递“超时”参数并检查返回值:

if reader.expect(">", 2)
  puts "foo.run"
else
  # did not see ">" within 2 seconds
  puts "foo.fail
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Ruby Expect脚本中使用条件

来自分类Dev

如何在expect脚本的if条件中使用变量?

来自分类Dev

如何在Expect脚本中使用日期?

来自分类Dev

如何在rbenv的shell脚本中使用ruby的指定版本?

来自分类Dev

如何在脚本块中使用jade / pug条件?

来自分类Dev

如何在java脚本的工具栏中使用if条件

来自分类Dev

如何在Ruby on Rails中使用jTable?

来自分类Dev

如何在Ruby中使用代码块?

来自分类Dev

如何在Ruby on Rails中使用jTable?

来自分类Dev

如何在Ruby中使用和阻止

来自分类Dev

如何在 SikuliX IDE 中使用 Ruby?

来自分类Dev

如何在 ruby trolloop 中使用“冲突”

来自分类Dev

在启动Selenium脚本之前,如何在浏览器的localStorage中使用ruby设置setItem

来自分类Dev

如何在Scheme中使用“条件”条件

来自分类Dev

如何在MeshLab过滤器脚本中使用条件选择面?

来自分类Dev

如何在特定选择器中使用Expect?

来自分类Dev

如何在Expect Shell中使用变量目录名称

来自分类Dev

如何使用Expect脚本测试SSH连接

来自分类Dev

如何在bash脚本中使用$ SECONDS?

来自分类Dev

如何在Shell脚本中使用if else

来自分类Dev

如何在JavaScript中使用NPM脚本

来自分类Dev

如何在Python脚本中使用awscli?

来自分类Dev

如何在npm脚本中使用“监视”?

来自分类Dev

如何在Shell脚本中使用else?

来自分类Dev

如何在psql脚本中使用变量

来自分类Dev

如何在PHP中使用Razor脚本?

来自分类Dev

如何在ajax脚本中使用IF语句?

来自分类Dev

如何在脚本标签中使用AngularJS?

来自分类Dev

如何在bash脚本中使用$ SECONDS?