У мене є безліч системних дзвінків в рубіні, таких як наведені нижче, і я хочу перевірити їхні вихідні коди одночасно, щоб мій скрипт вийшов, якщо ця команда не вдалася.
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
завжди буде правдою