Rubyスクリプトで「コマンドが見つかりません」というエラーをキャプチャする方法はありますか?例えば、与えられた:Rubyのバッククックから「コマンドが見つかりません」というエラーをキャプチャしていますか?
output = `foo`
どのようにトラップfoo
がインストールされていない状況ですか?私はrescue
に例外があると予想しましたが、これは1.8.7では動作しません。私が望むことをするサブプロセスを呼び出す別の方法はありますか?それとも別のアプローチがありますか?
更新
私の謝罪、私は隠された要件を言及するのを忘れてしまった:私は、インタプリタがユーザーにコマンドラインを漏洩しないことを好むだろう(それは機密データを含むことができます)、それゆえ、なぜ例外捕獲方法が好ましい。これを初めて出すことについてもう一度謝ります。
あなたが特定の機能を必要とする場合に有用な1つの戦術、さプリフライトチェックを実行したり、機能やアプリケーションを探したり、コードを実行したりする前に実行してください。 '' foo''と言ったり、いくつかのファイルテストを使ってファイルの存在と実行可能性を調べると、実際にコマンドを試行せずに失敗しても安全かどうかがわかります。欠落している機能にどのように対応するかを制御し、代替ルートに移動するか、ユーザーに何かが見つからないために進むことができないことを通知できるため、ユーザーエクスペリエンスが向上します。 –
合意されましたが、 '' foo''はクロスプラットフォームではないので、クロスプラットフォームの方法でそれを試してエラーをキャッチする以外にはできません。 – kfb