Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
据我在编程中学到的,当我想将输入重定向添加到我的程序时,我编写我的程序,因为它在执行时等待用户的输入(使用std::cin或类似的东西)。但我对更少的命令感到困惑。
我们都知道我们可以这样做:
ls -la | less
但是当我们尝试执行
less
没有任何参数我们会得到一个错误。怎么来的 ?!
less接受来自标准输入或文件的输入。
由于接受来自终端的输入(只是将相同的输入显示回终端)没有意义,因此less程序可能会检查 stdin 是否是终端(带有isatty)并拒绝运行。
isatty
看man 3 isatty
man 3 isatty
Less 是一个寻呼机,一个 UNIX 术语,指的是一次显示一屏输出的程序。如果将程序的输出通过管道传输到 less,它会一次显示一页输出。如果您在命令行上传递文件名,它会逐页显示这些文件。
如果您两者都不做,则没有什么可翻页的。它会引发错误,因为它无能为力。你想让它显示什么?