在 Newham 和 Rosenblatt 的“Learning the Bash shell”第三版中,它作为评论写在第 15 页:
如果在省略文件名参数时特定的 UNIX 实用程序不接受标准输入,请尝试使用破折号 (0) 作为参数。一些 NIX 系统将标准输入作为文件提供,因此您可以尝试提供文件 /dev/stdin 作为输入文件 argumnet.
最后一句话我不清楚-“将标准输入作为文件提供”是什么意思?
“重复”创建在系统中命名的文件不是很危险吗/dev/stdin
(我个人使用的是 Ubuntu 16.04)。
顺便说一句,我在这篇文章中遇到了类似的情况。
这不是关于创建
/dev/stdin
,而是关于使用它:您指定/dev/stdin
要与默认情况下(或使用)不支持标准输入的任何命令一起使用的文件-
,以使其无论如何都使用其标准输入。因此
all
cat
从其标准输入中读取(尽管在使用/dev/stdin
, 时以不同的方式使用不同的文件描述符,这意味着它在所有情况下都不是等效的)。我不是在创建/dev/stdin
,而是使用预先存在的设备节点作为cat
.