コマンド実行
ovのExecモードを使用すると、コマンドを実行し、その出力を動的に表示することができます。また、--follow-allオプションを使用することで、最後に出力された方を表示することができます。これにより、コマンドの標準出力と標準エラー出力を別々に表示しながら、エラーがあれば画面を切り替えることができます。
特別な表示方法を使用しない限り、コマンドの出力は通常、標準出力と標準エラー出力を使用します。 リダイレクトやパイプを使用して、これらの出力をファイルに保存したり、他のコマンドに渡したりすることができますが、そのままだと、標準出力か標準エラー出力のどちらかを渡すことになります。
例えば、進捗や結果のみ見返したいと思って以下のようにした場合は、標準出力だけがovに渡されます。
もし、エラーにより止まっていた場合、その情報は表示されません。
これらを両方とも渡すためには、リダイレクトを使用して、両方の出力を1つのストリームにまとめる必要があります。
2>&1は、標準エラー出力を標準出力にリダイレクトするためのシェル構文です。
これまでUnix系のシステムでは、この方法を使用して、両方の出力を1つのストリームにまとめていました。
ただ、この方法では、標準出力と標準エラー出力が混在して表示されるため、出力がみづらくなり不便な場合があります。
ovのExecモードを使用すると、コマンドを実行し、その出力を標準出力と標準エラー出力で別々に見ることが可能です。
通常ページャーは実行した出力をパイプでovに渡しますが、STDOUTとSTDERRをどちらか、または両方を混在させて表示することになります。
ovから実行することで、STDOUTとSTDERRを別々のドキュメントとして表示できます。
さらに--follow-allと同時に使うことで、最後に出力された方を表示できます。
つまり、makeの標準出力とエラー出力を別々に表示しながら、エラーがあれば画面を切り替えできます。
さらに、--notify-eofオプションを使用することで、コマンドの実行が終了したことを通知することもできます。
