Ho un sacco di chiamate di sistema in ruby come le seguenti e voglio controllare i loro codici di uscita simultaneamente in modo che il mio script esca se quel comando fallisce.
system("VBoxManage createvm --name test1")
system("ruby test.rb")
Voglio qualcosa di simile
system("VBoxManage createvm --name test1", 0)
<- dove il secondo parametro controlla il codice di uscita e conferma che quella chiamata di sistema ha avuto successo, e in caso contrario, solleverà un errore o farà qualcosa del genere.
È possibile?
Ho provato qualcosa sulla falsariga di questo e nemmeno quello 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
exit_code
sarà una stringa - o "0\n"
o "1\n"
, quindi exit_code != 0
sarà sempre vero