シェル スクリプトを 2 つのコマンドに簡略化しました。
ターミナル A (STDIN を名前付きパイプにリダイレクト):
tee -a >>pipe
ターミナル B (上で使用したパイプから読み取る):
tail -f pipe
私が理解していない結果:
- 結果 1 :開始ティー、開始テール: 最初のターミナルへのすべての入力はバッファーに入れられ、ティー コマンドが停止された後 (ctrl-c) にのみ 2 番目に表示されます。
- 結果 2 :ティーを開始し、テールを開始し、ティーを停止し、再びティーを開始します: 各行のみがバッファリングされます (必要な結果)。結果は、ターミナル 1 への入力の各行の最後にあるターミナル 2 に表示されます。
- 結果 3 (価値があるため):最初にテールを開始し、次にティー: #1 と同じ結果。
また、exec コマンドと cat コマンドを使用して同様のスクリプトを作成しましたが、同じ動作を示します。