Warum kann der Befehl „less“ keine Daten von der Standardeingabe lesen?

Warum kann der Befehl „less“ keine Daten von der Standardeingabe lesen?

Der Befehl less < brown_fox.txtliest die Daten brown_fox.txtund druckt sie auf dem Bildschirm aus. Aber wie gehe ich vor, wenn ich mit dem Befehl „less“ Daten von der Standardeingabe oder Tastatur lesen möchte?

Ich habe die folgenden Befehle ausprobiert:

less
less <&0

aber keiner von beiden war erfolgreich.

Antwort1

Zum Lesen von stdinkönnen Sie verwenden

less -

Dies ist jedoch besser geeignet, wenn Sie die Ausgabe eines anderen Befehls in weiterleiten möchten less. Das Tippen über die Tastatur funktioniert auch, aber Sie tippen blind und müssen drücken, Ctrl-Cum die Steuerung an Less zurückzugeben, was diese Art der Verwendung ziemlich schwierig (wenn nicht sinnlos) macht.Beachten Sie auch, dass dies nicht dokumentiert ist und möglicherweise überhaupt nicht portierbar ist!

Vielleicht möchtest Du noch genauer spezifizieren, warum Du lessdaraus vorlesen möchtest stdin?

Antwort2

Wenn Sie versuchen, Befehle an zu senden , können Sie dies beispielsweise in der Befehlszeile lesstun :+

less +G somefile

ls -l | less +G

Dies entspricht dem lessÖffnen und anschließenden Eingeben des GBefehls in der Standardeingabeaufforderung.


Wenn Sie über Paging-Informationen sprechen less, die Sie eingegeben haben, können Sie ein Heredoc verwenden, aber ich bin mir über den Anwendungsfall dafür nicht sicher:

less << EOF
hello
world
EOF

verwandte Informationen