Ho un sacco di chiamate di sistema in ruby come il seguente e voglio controllare i loro codici di uscita simultaneamente in modo che il mio script esca se quel comando fallisce.comando di sistema ruby controllare il codice di uscita
system("VBoxManage createvm --name test1")
system("ruby test.rb")
voglio qualcosa di simile
system("VBoxManage createvm --name test1", 0)
< - in cui il secondo parametro controlla il codice di uscita e conferma che quella chiamata di sistema ha avuto successo, e se non, sarà genera un errore o di fare qualcosa di quel genere.
È possibile?
Ho provato qualcosa del genere e anche questo non ha funzionato.
system("ruby test.rb")
system("echo $?")
o
`ruby test.rb`
exit_code = `echo $?`
if exit_code != 0
raise 'Exit code is not zero'
end
possibile duplicato [errori Facendo riga di comando utilizzando% x] (http://stackoverflow.com/questions/4771930/catching-command-line-errors-using-x) –
In precedenza Ad esempio, 'exit_code' sarà una stringa - o" "0 \ n" 'o' "1 \ n" ', quindi' exit_code! = 0' sarà sempre true – dgmstuart