指示:
echo "a" | tee `tty`
出力:
a
指示:
echo "a" | tee /dev/pts/0
出力:
a
a
現在の端末に接続されているファイルは/dev/pts/0
です。両方のコマンドが同じ出力を生成するべきではありませんか? ここで何が欠けていますか?
指示:
echo "a" | tee `tty`
出力:
a
指示:
echo "a" | tee /dev/pts/0
出力:
a
a
現在の端末に接続されているファイルは/dev/pts/0
です。両方のコマンドが同じ出力を生成するべきではありませんか? ここで何が欠けていますか?
tee
コマンドラインで指定されたすべてのファイル記述子と標準出力に標準入力を複製するため、ファイルの1つが現在の端末にある場合( も使用できます-
)、入力は標準出力に2回書き込まれます。
最初のケースでは、stdin は tty に接続されていない (ただし、echo
コマンドの出力には接続されている) ためtty
、not a tty
. したがって、コマンドは になりecho "a" | tee not a tty
、それぞれ「a」を含む 3 つのファイル (「not」、「a」、「tty」と呼ばれる) と、stdout に書き込まれる「a」が作成されます。