У меня есть несколько системных вызовов в Ruby, таких как следующие, и я хочу одновременно проверять их коды выхода, чтобы мой сценарий завершился, если эта команда не удалась.
system("VBoxManage createvm --name test1")
system("ruby test.rb")
Я хочу что-то вроде
system("VBoxManage createvm --name test1", 0)
<- где второй параметр проверяет код выхода и подтверждает, что этот системный вызов был успешным, а если нет, он вызовет ошибку или сделает что-то в этом роде.
Это вообще возможно?
Я пробовал что-то в этом роде, и это тоже не сработало.
system("ruby test.rb")
system("echo $?")
или
`ruby test.rb`
exit_code = `echo $?`
if exit_code != 0
raise 'Exit code is not zero'
end
exit_code
будет строка - либо, "0\n"
либо "1\n"
, поэтому exit_code != 0
всегда будет истинным