![为什么“less”命令无法从标准输入读取数据?](https://linux22.com/image/164668/%E4%B8%BA%E4%BB%80%E4%B9%88%E2%80%9Cless%E2%80%9D%E5%91%BD%E4%BB%A4%E6%97%A0%E6%B3%95%E4%BB%8E%E6%A0%87%E5%87%86%E8%BE%93%E5%85%A5%E8%AF%BB%E5%8F%96%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
该命令less < brown_fox.txt
将从中读取数据brown_fox.txt
并将其打印在屏幕上。但是如果我想使用 less 命令从标准输入或键盘读取数据,我应该怎么做呢?
我尝试了以下命令,
less
less <&0
但他们都没有成功。
答案1
为了读取stdin
,您可以使用
less -
但是,这更适合您想要将另一个命令的输出通过管道传输到less
.从键盘输入也可以,但是您将在盲区中输入,并且必须按下Ctrl-C
才能将控制权返回到 less,这使得这种用法相当困难(如果不是毫无意义的话)。另请注意,这是未记录的,并且可能根本不可移植!
也许您想进一步说明为什么要less
阅读stdin
?
答案2
如果您尝试向 发送命令less
,可以+
在命令行中使用,例如:
less +G somefile
ls -l | less +G
这相当于打开并在默认提示符下less
键入命令。G
如果您正在谈论less
您输入的分页信息,您可以使用heredoc,但我不确定其用例:
less << EOF
hello
world
EOF