annotate-output
Debianのからスクリプトをdevscripts
使用すると、選択的にこれを行うことができます:
$ annotate-output ls -ld /test
14:54:22 -: Started ls -ld /test
14:54:22 E: ls: cannot access /test: No such file or directory
14:54:22 -: Finished with exitcode 2
2番目の列は、stdoutおよびstderr with O
およびwith をE
それぞれ示しています。
いくつかの注意事項がありますが、主なものは他の回答に記載されているとおりです。事実の後、これを行うことはできません。シェルも端末も、任意のプログラムがファイル記述子をどのように使用するかを認識していませんが、シェルはそれらを最初に設定する責任があります。
このメソッドはfifoを使用します。fifoへの書き込みはttyへの書き込みとは異なる動作をする可能性があり、2つの異なるfifoへの書き込みは明らかに異なります(潜在的なタイミング/インターリーブの問題)。また、インタラクティブな使用には適していません。たとえばannotate-output bash
、素晴らしい計画ではありませんが、他の多くの目的には役立ちます。stdin / stdout / stderrの色付けに関する関連質問への回答には、スクリプトとシェル関数の多くの例があります。最も堅牢なのは、stderrdに書き込まれたデータを(ほとんどの)プログラムのランタイム変更を使用して変更するstderrdです。
Ankoがリンクしているこの質問には、その関連テーマに関する良い答えがあります:stdout / stderr出力の色付け:
STDERRとSTDOUTを異なる色で印刷するようにシェルを構成できますか?