Python には、失敗する可能性のあるサブプロセスを呼び出すための便利な関数が 2 つ用意されていsubprocess.check_callますsubprocess.check_output。基本的、
subprocess.check_call(['command', 'arg1', ...])
指定されたコマンドをサブプロセスとして生成し、ブロックして、サブプロセスが正常に終了したことを確認します(0 が返されます)。そうでない場合は、例外をスローします。check_outputサブプロセスの stdout をキャプチャしてバイト文字列として返すことを除いて、同じことを行います。
これは単一の Python 式であるため (数行のコードでサブプロセスを設定および制御する必要がない)、戻り値のチェックを忘れるリスクがないため便利です。
check_callとに相当する慣用的な Ruby は何check_outputですか? プロセスの戻り値を与えるグローバルは知って$?いますが、それは扱いにくいでしょう。例外があることのポイントは、手動でエラー コードをチェックする必要がないことです。Rubyでサブプロセスを生成する方法は多数ありますが、この機能を提供する方法はありません。