如何访问a
中变量test1.rb
的值,以便在test1.rb
之外的SSH
中进一步使用?
在test1.rb
Net::SSH.start("host", ava) do |ssh|
ssh.exec('ruby test2.rb')
end
在host
,test2.rb
#!/usr/bin/env ruby
class Value
def get_value()
a = 1 + 2
end
end
v = Value.new
v.get_value()
答案 0 :(得分:2)
在test1.rb脚本中,您需要将一个块传递给ssh.exec
方法,在该块中,您将能够从test2.rb访问puts
的任何内容
Net::SSH.start("127.0.0.1", 'ava', password: '') do |ssh|
ssh.exec('ruby test2.rb') do |channel, stream, data|
puts "got: #{data}" if stream == :stdout
end
end
puts
要从test2.rb传递给test1.rb的值:
v = Value.new
puts v.get_value()
这会将值发送到stdout
自述文件中的更多信息:https://github.com/net-ssh/net-ssh#readme