Ich habe eine Reihe von Systemaufrufen in Ruby wie folgt und ich möchte ihre Exit-Codes gleichzeitig überprüfen, so dass mein Skript beendet, wenn dieser Befehl fehlschlägt.ruby system command prüfen exit code
system("VBoxManage createvm --name test1")
system("ruby test.rb")
Ich mag so etwas wie
system("VBoxManage createvm --name test1", 0)
< - wo der zweite Parameter den Exit-Code überprüft und bestätigt, dass das Systemaufruf erfolgreich war, und wenn nicht, wird es einen Fehler erhöhen oder etwas von diese Sorte.
Ist das überhaupt möglich?
Ich habe versucht, etwas in die Richtung dieser und das hat auch nicht funktioniert.
system("ruby test.rb")
system("echo $?")
oder
`ruby test.rb`
exit_code = `echo $?`
if exit_code != 0
raise 'Exit code is not zero'
end
möglich Duplikat [Beschäftigten Befehlszeilenfehler mit% x] (http://stackoverflow.com/questions/4771930/catching-command-line-errors-using-x) –
In dem obigen Beispiel: 'exit_code' ist eine Zeichenkette - entweder' "0 \ n" 'oder' "1 \ n" ', so dass 'exit_code! = 0' immer wahr ist – dgmstuart