次のようなルビーのシステムコールがたくさんありますが、それらの終了コードを同時にチェックして、コマンドが失敗した場合にスクリプトが終了するようにしたいと考えています。
system("VBoxManage createvm --name test1")
system("ruby test.rb")
私のようなものが欲しい
system("VBoxManage createvm --name test1", 0)
<-ここで、2番目のパラメータは終了コードをチェックし、そのシステムコールが成功したことを確認します。成功しなかった場合は、エラーが発生するか、そのような処理が行われます。
それはまったく可能ですか?
私はこれに沿って何かを試しましたが、それもうまくいきませんでした。
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
常にtrueになります