Ruby语言输入方法法

Python015

Ruby语言输入方法法,第1张

#举个例子,分段函数的处理

puts "Please input x:" #输出一些文字

x = gets #等待用户用键盘输入信息

if x<2 #以下是判断输入信息及根据输入信息进行引导

y = x+4

else

y = 2*x

end

puts "The result is:#{y}"#输出结果

现有解决方案有expect 和 sshpass 等第三方解决方案,因不想引入过多依赖决定自己实现。

通过查找 资料 发现以上方案是对tty直接写入来达到效果,但是我用bash脚本直接对tty写入确只能在屏幕显示,不能被程序获取,于是转入使用ruby按照以上资料来自己实现,

发现将第6,7,8行注释掉之后报如下错误:

对ssh_askpass 查找 资料 发现环境变量 SSH_ASKPASS DISPLAY可以定义一个程序用来在ssh没有联接终端时提供密码

**SSH_ASKPASS **设为提供密码的程序

DISPLAY 设为 :0

测试发现ssh 调用 SSH_ASKPASS 定义的程序时,带 参数执行,如

***# $SSH_ASKPASS * [email protected]'s password:

只要程序打印正确密码,ssh即可验证通过,于是问题解决,也不需要用ruby去实现了。

示例如下:

项目GitHub地址

这样即可自动输入密码ssh登录。

网上几乎都是expect 和 sshpass等方案来实现自动输入密码,此方法原理网上资料少有,记录之。

2016.11.24

puts "请输入密码:"

x=gets().strip.to_s

if x == "123456" do

puts "密码正确!"

else

puts "NO"

end