次のように、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"
失敗するように、意図的にシェル スクリプトにエラーを追加しました (つまり、"echo" を "eho" と綴っています)。Ruby スクリプトがマーカー #1 に到達したことを出力し、エラーを救出して「エラーが発生しました」と表示することを期待します。
代わりに、私は得ています:
"Reached point #1"
line 1: eho: command not found
"Reached point #2"
確かに正しいエラーがスローされますが、system(...) からのシェル エラーは解決されません。理由について何か考えはありますか?