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