bash 中 1>&0 的行为

bash 中 1>&0 的行为

所以我想了解有关文件描述符及其重定向的更多信息。目前我正在探索一种边缘情况1>&0,但我不太明白那里发生了什么。

$ echo hello 1>&0
hello

因此,在这种情况下,hello即使我将标准输出重定向到标准输入,也会打印出来。我预计不会打印任何内容。

你能解释一下为什么hello要打印吗?

答案1

描述符01都以读+写模式连接到您的终端,因此此重定向不会改变任何内容。在 Linux 上,您可以在 下找到所有当前描述符/proc/self/fd,例如在我的例子中:

$ ls -l /proc/self/fd
lrwx------ 1 jimmij jimmij 64 Jan  3 17:42 0 -> /dev/pts/2
lrwx------ 1 jimmij jimmij 64 Jan  3 17:42 1 -> /dev/pts/2
lrwx------ 1 jimmij jimmij 64 Jan  3 17:42 2 -> /dev/pts/2
lr-x------ 1 jimmij jimmij 64 Jan  3 17:42 3 -> /proc/5263/fd

正如您所看到的012都链接到伪终端/dev/pts/2

相关内容