「less」コマンドが標準入力からデータを読み取れないのはなぜですか?

「less」コマンドが標準入力からデータを読み取れないのはなぜですか?

このコマンドはless < brown_fox.txtデータを読み取りbrown_fox.txt、画面に出力します。しかし、less コマンドを使用して標準入力またはキーボードからデータを読み取りたい場合は、どうすればよいでしょうか?

次のコマンドを試しました。

less
less <&0

しかし、どちらも成功しませんでした。

答え1

から読み取るにはstdin

less -

ただし、これは別のコマンドの出力を にパイプする場合に適していますless。キーボードからの入力も機能しますが、ブラインド入力となり、Ctrl-Cless に制御を戻すには を押さなければならないため、このような使用法はかなり困難になります (無意味ではないにしても)。また、これは文書化されておらず、移植性がまったくない可能性があることにも注意してください。

おそらく、なぜlessから読みたいのかをさらに詳しく指定したいのでしょうかstdin?

答え2

にコマンドを送信する場合は、コマンド ラインで をless使用してこれを行うことができます。次に例を示します。+

less +G somefile

ls -l | less +G

lessこれは、開いてGデフォルトのプロンプトでコマンドを入力するのと同じです。


入力したページング情報について話しているのであればless、ヒアドキュメントを使用できますが、その使用例についてはよくわかりません。

less << EOF
hello
world
EOF

関連情報