
less
Ich versuche , mithilfe der LESSOPEN
Umgebungsvariable eine gefilterte Version einiger Dateien einzulesen , aber egal, wie einfach mein Präprozessor ist, der Befehl bleibt hängen, bis ich ihn SIGINT
mit Strg+C sende:
LESSOPEN='||cat' less foo bar
Was mache ich hier falsch? (Beachten Sie, dass ich die Eingabe nicht einfach als Pipe übergeben kann, da ich mehrere Dateien in separaten Puffern öffne.)
Antwort1
Sie haben das vergessen %s
, ohne das cat
kein Dateiname erstellt wird und das einfach auf die Eingabe von stdin wartet:
LESSOPEN='||cat %s' less foo bar # works
LESSOPEN='||cat' less foo bar # hangs
Dermanpagesagt:
Um einen Eingabepräprozessor einzurichten, setzen Sie die Umgebungsvariable LESSOPEN auf eine Befehlszeile, die Ihren Eingabepräprozessor aufruft. Diese Befehlszeile sollte einmal die Zeichenfolge „%s“ enthalten, die durch den Dateinamen ersetzt wird, wenn der Befehl des Eingabepräprozessors aufgerufen wird.