据我在编程中学到的,当我想将输入重定向添加到我的程序时,我将程序编写为执行时,它等待用户的输入(使用 std :: cin 或类似的东西)。但是我对较少的命令感到困惑。
我们都知道我们可以这样做:
ls -la | less
但是当我们尝试执行
时less
没有任何参数我们得到一个错误。怎么来的?!
答案 0 :(得分:4)
less
接受来自stdin或文件的输入。
由于接受来自终端的输入没有意义(只是为了向终端显示相同的输入),less
程序可能检查stdin是否是终端(isatty
)并拒绝参加。
请参阅man 3 isatty
答案 1 :(得分:2)
Less是一个寻呼机,一个程序的UNIX术语,一次显示输出一个屏幕。如果将程序的输出传递给less,它会一次显示输出一页。如果在命令行上传递文件名,则会逐页显示这些文件。
如果你两个都没有,那就没有什么可以翻阅的了。它抛出一个错误,因为它没有任何明智的做法。你想要它展示什么?