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