“less”命令如何获得stdin输入?

时间:2013-03-28 00:34:53

标签: linux bash shell pipe less-unix

我只是想知道这个问题: 如果我可以使用类似“ls -al | less”的东西,则应该具有等待stdin输入的能力。我期望发生的是在运行“less”命令后,程序挂断并等待输入(因为调用gets()或类似的东西。)

但是为什么它实际上显示错误消息“缺少文件名(”少 - 帮助“帮助)”结束退出?

谢谢。

3 个答案:

答案 0 :(得分:2)

less命令可以检查argc>1stdin是否与文件(不是tty)相关联。

答案 1 :(得分:0)

较少的命令不是设计的。在bash中执行命令时,它将立即显示所有信息。 less命令用于一次显示命令的STDOUT或文件内容。

答案 2 :(得分:0)

$ ls -al | less
total 16
drwxrwxr-x  4 hdante hdante 4096 Nov 24 17:11 .
drwxr-xr-x 88 hdante hdante 4096 Mar 24 22:14 ..
drwxrwxr-x  2 hdante hdante 4096 Nov 25 01:55 new
drwxrwxr-x  3 hdante hdante 4096 Nov 24 18:27 old
(END)

有效。你的不足是有问题的。从较少的手册页:

http://www.linuxmanpages.com/man1/less.1.php https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/less.1.html

手册将文件名描述为可选。

诊断问题的提示:

  • 尝试别名| grep less,查看命令是否被修改
  • 尝试设置| grep LESS,并检查由LESSCLOSE和LESSOPEN运行的脚本