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”。