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?!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage