有几个资源表明文件描述符0
已连接到键盘。
我了解到echo
没有收到来自的输入stdin
(或者0
)。
这对我来说感觉很矛盾。当我运行时,echo foo
我使用键盘作为将输入传递给命令的方式。在什么意义上stdin
连接到键盘使得这里不存在矛盾?
答案1
首先,stdin 并不总是与键盘相关联。其次,您没有使用 stdin 将任何内容传递给echo
.您正在使用键盘将字符串传递echo foo
到 shell。 shell 解析该字符串并调用一个名为的命令echo
(无论该命令是 shell 或可执行文件的内置命令/usr/bin/echo
,还是/bin/echo
无关的),该命令解析其参数,忽略其标准输入,并写出该字符串foo\n