これを実現するためにBASHマジックを使用するにはどうすればよいですか?
画面にstderr出力のみを表示したいのですが、
しかし、stdoutとstderrの両方をファイルに書き込みたいのです。
明確化:
stdoutとstderrの両方を同じファイルにまとめたい。それらが発生する順序で。
残念ながら、以下の回答はどれもこれを行いません。
承認された回答:
リダイレクトがなくても、または>logfile 2>&1
だけでも 、生成順に出力が表示される保証はありません。
手始めに、アプリケーションからのstdoutはラインバッファリング(ttyへ)またはバッファリング(パイプラインへ)されますが、stderrはバッファリングされないため、リーダーに関する限り、出力の順序間の関係は壊れています。作成できるパイプラインの後続のステージでは、2つのストリームへの決定論的に順序付けられたアクセスは取得されません(これらは概念的には並行して発生し、常にスケジューラーの対象になります-リーダーがスライスを取得するまでに、ライターがすでに持っている場合両方のパイプに書き込まれているため、どちらが先に来たかはわかりません。
「それらが発生する順序」は、アプリケーションにのみ実際に知られています。 stdout / stderr全体での出力の順序付けは、よく知られている-古典的な、おそらく-問題です。
ネットワークサービスでStandardioを使用して単純なスクリプトを作成するようにSystemdを構成するにはどうすればよいですか?
ユーザーからのコマンドを読み取ることができる一方で、「less」はどのようにしてStdinからデータを取得しますか?