可以从stdin命令更多的读取?

时间:2012-02-20 16:32:58

标签: linux command pipe

更多地使用命令是很常见的。更多通常与管道一起使用。所以我认为更有能力从stdin读取。由管道分隔的每个命令都是一个进程,而更多的命令只是创建管道,并将写入管道复制到更多的stdin。但我发现如果我在控制台中键入“更多”,只会显示一些用法。那是怎么回事?

3 个答案:

答案 0 :(得分:2)

这是一个功能。它检测到其标准输入已连接到终端,并显示帮助消息而不是继续。在您手动输入内容时,几乎没有在输入上运行寻呼机的情况。如果你真的想要,请尝试cat | more

答案 1 :(得分:2)

为什么你认为有什么不对?为终端输出更多页面,那么等待足够的类型化stdin输入到页面的重点是什么?

如果您输入more和一个或多个文件名,它将会输入该输入。所以行为就像:

am I attached to a terminal? ("isatty")
   are there filenames in argv
       page files
   else
       display help
else
   page pipe input

答案 2 :(得分:2)

为了什么值得,我查看了我的linux发行版中的存储库提供的源包,发现了这个:

if (!no_intty && nfiles == 0) {
usage(argv[0]);
exit(1);
}

因此,如果未检测到输入,则行为确实显示用法消息。