0
由于net-ssh手册中说“exec”方法在通道上异步执行一个命令。 http://net-ssh.github.io/ssh/v1/chapter-3.html#s6如何用ruby net ssh通道执行教程?
但是,当我希望以执行一些教官,例如:
def work(session, instructor)
session.open_channel do |channel|
channel.on_data do |ch, data|
puts data.strip
end
channel.exec instructor
end
end
Net::SSH.start('host') do |session|
work session, "touch a.file"
work session, "mv a.file b.file"
work session, "rm b.file"
session.loop
end
执行命令异步真的让这样的代码无法正常工作。
有人能帮我解决这个问题吗?
谢谢!
如果我想给exec命令不是一个基本的shell命令?我认为第二种方式是可以的。但目前还不清楚我的命令是否很长。谢谢。 – wonderflow
@wonderflow文件说不是shell只是bash,我相信这只是默认的删除shell。 –
@МалъСкрылевъ - 我有一个与ssh连接状态有关的小问题。请帮助我 - https://stackoverflow.com/questions/28799593/unix-commands-work-on-server-but-not-in-ruby-ssh-session谢谢。 – james