为什么“less”命令无法从标准输入读取数据?

为什么“less”命令无法从标准输入读取数据?

该命令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

相关内容