我在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
我正在使用我的Ruby脚本来调用系统命令,如下所示
puts "Reached point #1"
begin
  system("sh my_shell_script.sh")
rescue StandardError => e
  puts "There was an error"
end
puts "Reached point #2"
我故意在我的shell脚本中添加了一个错误,因此它会失败(即我将"echo"拼写为"eho").我希望我的Ruby脚本输出它到达标记#1,然后挽救错误以显示"有错误".
相反,我得到:
"Reached point #1"
line 1: eho: command not found
"Reached point #2"
它肯定会抛出正确的错误,但系统(...)的shell错误不会被挽救.有什么想法为什么?