Was bedeutet "WENIGER = + / BEISPIEL \:"?

818
isomorphismes

In man parallel_tutorial(für GNU parallel) habe ich folgende schwarze Magie gefunden:

LESS=+/EXAMPLE\: man parallel 

Das Durchsuchen der manSeiten nach man, lessund bashes scheint, dass dies etwas mit einem less Präprozessor zu tun hat, aber ich bin nicht sicher, und die ersten Versuche, andere Manpages mit dieser Syntax zu durchsuchen, schlugen fehl.

Was +/...\:bedeutet in Bash?

11
Ihr Highlight-Abschnitt hat nicht \: Der hintere Schrägstrich fehlt. Hast du gemeint? mike65535 vor 5 Jahren 0
@ mike65535, es wird eingegeben, wenn Sie auf "Bearbeiten" klicken, können Sie es sehen. Es wird jedoch nicht angezeigt. Aganju vor 5 Jahren 0
Es sollte funktionieren, das \ mit einem anderen Backslash zu entgehen. Zu kurz für mich zum Bearbeiten. Orphevs vor 5 Jahren 0

2 Antworten auf die Frage

11
grawity

Es bedeutet nichts in Bash . Es ist ein beliebiger Text, der in der Umgebungsvariablen $ LESS für diesen einzelnen Befehl gespeichert wird.

Beim Ausführen lessliest es jedoch den Inhalt von $ LESS und interpretiert sie ähnlich wie Befehlszeilenargumente. Normalerweise speichern Sie hier die Konfiguration.

( Weniger ist kein Präprozessor: Es handelt sich um einen einfachen Textdatei-Viewer, auch als Pager bezeichnet. Beachten Sie, dass mankein eingebauter Reader vorhanden ist: Der Text wird nur über Groff (den eigentlichen Präprozessor) generiert, dann wird entweder immer weniger oder ein anderer Pager ausgeführt Blättern Sie durch. Die Autoren dieses Tutorials gehen davon aus, dass Ihr System weniger verwendet, da es so allgegenwärtig ist.)

Wenn Argumente mit weniger Argumenten anfangen, die mit a beginnen +, wird der Rest als Befehl oder Tastendruck interpretiert, um zu simulieren: Wenn dies zutrifft, +Gwürden weniger so tun, als hätten Sie nach dem Öffnen der Datei G gedrückt und würden nach unten scrollen.

In Ihrem Fall geben Sie weniger vor, als hätten Sie /EXAMPLE:nach dem Öffnen der Datei etwas eingegeben . /ist der Suchschlüssel / Befehl in weniger, und der Rest ist der Text, nach dem gesucht werden soll.

Das Ergebnis ist, dass der Befehl die Manpage von "parallel" öffnet und dann zum Abschnitt "BEISPIEL" führt.

Was der Autor des Tutorials anscheinend zu schwierig fand, um ihn im normalen Englisch auszudrücken. grawity vor 5 Jahren 1
Nun, es ist * ist * GNU ...: P Ausgezeichnete Antwort übrigens, gerade als ich anfing, so gutes Timing zu schreiben! bertieb vor 5 Jahren 0
Streng genommen ist der hintere Schrägstrich vor dem Doppelpunkt relevant für 'bash', da er verhindert, dass der Doppelpunkt eine spezielle Bedeutung hat, die er in 'bash' nicht hat, obwohl er in einer anderen Shell sein kann. AFH vor 5 Jahren 1
@ grawity Der Kontext im Tutorial lautet: "Schauen Sie sich die BEISPIELE nach der Liste der OPTIONS in man parallel an (Use LESS = + /AMPLE \: man parallel)." Wie hätten Sie es in normalem Englisch ausgedrückt? Ole Tange vor 5 Jahren 1
7
bertieb

Wie die hervorragende Antwort von grawity zeigt, gibt es eine Möglichkeit, dem lessPager eine Anweisung zu geben . In diesem speziellen Fall können Sie anhand der Anleitung und des Tutorials von GNU Parallel die Beispiele leicht lesen.

Wie Sie bereits im Inhaltsverzeichnis des Online-Handbuchs sehen können, beginnt jedes Beispiel mit der Zeichenfolge EXAMPLE:, sodass Sie mit dem Befehl LESS=+/EXAMPLE: man parallelzum ersten Beispiel und den nachfolgenden Beispielen springen können, indem Sie n(für die nächste Übereinstimmung ) drücken .

Zum Beispiel:

screencap of jumping through manual

( Jeder Sprung im manuellen Abschnitt ist ein nTastendruck )