Wie erhalte ich den Exit-Status mit der Net :: SSH-Bibliothek von Ruby?
Ich habe ein Codefragment und versuche einfach, ein Skript auf einem Remote-Server auszuführen. Falls es fehlschlägt, möchte ich einen Folgeaufruf tätigen. Stellen Sie sich Folgendes vor:
require 'rubygems'
require 'net/ssh'
require 'etc'
server = 'localhost'
Net::SSH.start(server, Etc.getlogin) do |ssh|
puts (ssh.exec("true") ? 'Exit Success' : "Exit Failure")
puts (ssh.exec("false") ? 'Exit Success' : "Exit Failure")
end
Ich würde erwarten (ignoriere, dass stdout und stderr in meinem erfundenen Beispiel gedruckt werden) - aber die erste Zeile sollte mit @ beendet werd0
was ich erwarten würde, würde Ruby als @ interperafalse
und zeige "Exit Failure" an (klar, die Logik ist falsch, das Ternäre muss gekippt werden) - aber die zweite Zeile sollte mit dem entgegengesetzten Status beendet werden, und das tut es nicht.
Ich kann nicht einmal in der Dokumentation nachlesen, wie das geht, und ich mache mir ein bisschen Sorgen, dass ich es falsch mache?!