小编dce*_*ere的帖子

如何从ruby执行远程主机上的交互式shell程序

我试图从另一个ruby程序在远程主机上执行交互式shell程序.为简单起见,我们假设我想要执行的程序是这样的:

puts "Give me a number:"
number = gets.chomp()
puts "You gave me #{number}"
Run Code Online (Sandbox Code Playgroud)

到目前为止最成功的方法是使用我从这里获得的方法.就是这个:

require 'open3'
Open3.popen3("ssh -tt root@remote 'ruby numbers.rb'") do |stdin, stdout, stderr|
    # stdin  = input stream
    # stdout = output stream
    # stderr = stderr stream
    threads = []
    threads << Thread.new(stderr) do |terr|
        while (line = terr.gets)
          puts "stderr: #{line}"
        end
    end
    threads << Thread.new(stdout) do |terr|
        while (line = terr.gets)
          puts "stdout: #{line}"
        end
    end

    sleep(2)
    puts "Give me an answer: …
Run Code Online (Sandbox Code Playgroud)

ruby ssh bash shell

1
推荐指数
1
解决办法
3215
查看次数

标签 统计

bash ×1

ruby ×1

shell ×1

ssh ×1