我正在使用我的 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"
它肯定会抛出正确的错误,但 system(...) 的 shell 错误并没有被挽救。关于为什么的任何想法?