Wie kann man weniger in einem Skript verwenden, ohne ESC-Escape-Zeichen zu erhalten?

12

Wenn ich lessin der Kommandozeile benutze , ist die Ausgabe wie Geben Sie hier die Bildbeschreibung ein

aber wenn ich lessaus einem Bash-Skript heraus benutze, bekomme ich: <code> [! [Bildbeschreibung hier eingeben] [1]] [1] </ code>

Wie kann ich lessin einem Bash-Skript nicht alle Escape-Zeichen abrufen und es so funktionieren lassen, wie es in der interaktiven Befehlszeile funktioniert?

Michael Durrant
quelle
1
Sie haben eine Umgebungsvariable, deren Name mit LESSeinem Wert in Ihrer interaktiven Shell beginnt , jedoch nicht in Ihrem Shell-Skript. Um printenv | grep LESSdie Identität herauszufinden, können Sie sie auch in Ihrem Shell-Skript festlegen oder die entsprechenden Befehlszeilenoptionen verwenden.
zwol

Antworten:

28

Verwendung -RFlagge:

-r oder --raw-control-chars

Bewirkt, dass "rohe" Steuerzeichen angezeigt werden. Standardmäßig werden Steuerzeichen in der Caret-Notation angezeigt. Beispielsweise wird ein Steuerelement A (Oktal 001) als "^ A" angezeigt. Warnung: Wenn die Option -r verwendet wird, kann weniger das tatsächliche Erscheinungsbild des Bildschirms nicht verfolgen (da dies davon abhängt, wie der Bildschirm auf die einzelnen Steuerzeichen reagiert). Daher können verschiedene Anzeigeprobleme auftreten, beispielsweise lange Zeilen, die an der falschen Stelle geteilt werden.

-R oder --RAW-CONTROL-CHARS

Wie -r, jedoch werden nur ANSI-Escape-Sequenzen "Farbe" in "Roh" -Form ausgegeben. Im Gegensatz zu -r wird das Erscheinungsbild des Bildschirms in den meisten Fällen korrekt beibehalten. ANSI "Farbe" Escape-Sequenzen sind Sequenzen der Form:

           ESC [ ... m

wobei das "..." null oder mehr Farbspezifikationszeichen ist Um das Erscheinungsbild des Bildschirms zu verfolgen, wird angenommen, dass ANSI-Farb-Escape-Sequenzen den Cursor nicht bewegen. Sie können weniger denken, dass andere Zeichen als "m" ANSI-Farbfluchtsequenzen beenden können, indem Sie die Umgebungsvariable LESSANSIENDCHARS auf die Liste der Zeichen setzen, die eine Farbfluchtsequenz beenden können. Und Sie können weniger denken, dass andere Zeichen als die Standardzeichen zwischen ESC und m erscheinen können, indem Sie die Umgebungsvariable LESSANSIMIDCHARS auf die Liste der Zeichen setzen, die angezeigt werden können.

Von der lessManpage.

Kaffeetasse
quelle