文件描述符和重定向

文件描述符和重定向

有几个资源表明文件描述符0已连接到键盘。

0_kb

我了解到echo没有收到来自的输入stdin(或者0)。

这对我来说感觉很矛盾。当我运行时,echo foo我使用键盘作为将输入传递给命令的方式。在什么意义上stdin连接到键盘使得这里不存在矛盾?

答案1

首先,stdin 并不总是与键盘相关联。其次,您没有使用 stdin 将任何内容传递给echo.您正在使用键盘将字符串传递echo foo到 shell。 shell 解析该字符串并调用一个名为的命令echo(无论该命令是 shell 或可执行文件的内置命令/usr/bin/echo,还是/bin/echo无关的),该命令解析其参数,忽略其标准输入,并写出该字符串foo\n

相关内容