1
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
複製標準輸入到命令行和到標準輸出上給出的所有文件描述符,所以如果其中一個文件是當前終端(你也可以使用-
),然後輸入將在標準輸出兩次寫入。
在第一種情況下,stdin沒有連接到tty(但是連接到echo
命令的輸出),因此tty
給出not a tty
。因此命令變爲echo "a" | tee not a tty
,並且您將有三個文件(稱爲「不是」「a」和「tty」),每個文件包含「a」以及寫入標準輸出的「a」。