GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kann $pager Leerzeichen enthalten?

Ich schreibe eine Anwendung, von der aus ich einen benutzerdefinierten Pager ausführen möchte. Der Standardweg dafür scheint zu sein, sich den PAGER anzusehen Umgebungsvariable.

Ich bin mir nicht sicher, ob dies ein Programmname oder ein Programmname zusammen mit Argumenten ist. Ich habe versucht, Standards zu finden, die dies erwähnen, konnte es aber nicht.

Mein Bauchgefühl ist, dass ich mich auf Räume aufteilen und ausführen sollte. Hab ich recht? Ich bin auf verschiedene Programme gestoßen, die Umgebungsvariablen wie $PAGER annehmen und $EDITOR sind Programmnamen ohne Umgebungsvariablen.

Vielleicht sollte ich mit sh ausführen stattdessen aber?

Links

  • Diese Frage behandelt die Quelle verschiedener gemeinsamer Umgebungsvariablen

Akzeptierte Antwort:

Mein Bauchgefühl ist, dass ich auf Leerzeichen aufteilen und ausführen sollte.

Gute Instinkte. Sie rufen exec an (3); Es liegt an Ihnen, wie Sie die von Ihnen unterstützten Umgebungsvariablen interpretieren. Indem Sie Optionen unterstützen, ersparen Sie dem Benutzer die Mühe, ein Skript zu schreiben, um sie in einen einzigen $PAGER-Namen zu stecken.

Ein gutes Beispiel könnte man sein (1). Auf meinem System unterstützt es MANPAGER, was besagt,

Wenn MANPAGER gesetzt ist, wird sein Wert als Name des Programms
verwendet, das zum Anzeigen der Manpage verwendet werden soll. Wenn nicht, wird PAGER verwendet. Wenn
das auch keinen Wert hat, /usr/bin/less -is verwendet wird.

Das impliziert zumindest, dass PAGER Optionen enthalten kann. Sie könnten mit Ihrem experimentieren, um es zu sehen. Ich wette, das tut es.

Ich glaube nicht, dass Posix die Frage anspricht, wie Umgebungsvariablen, die Dienstprogramme bezeichnen, interpretiert werden. Ich denke, das Beste, was Sie haben, sind allgemeine Beispiele für den Stand der Technik.

Zu der Frage, ob es durch „die“ Shell geleitet werden soll oder nicht, würde ich nein sagen, es sei denn, Sie möchten die Shell-Variablenerweiterung nutzen und dokumentieren. Es ist einfacher und berechenbarer, die Schale aus der Sache herauszuhalten.


Linux
  1. Wie kann ich in Vim oder Linux Leerzeichen in Tabulatoren umwandeln?

  2. Können wir C-Code in Python verwenden?

  3. Wie kann ein C-Programm Benutzereingaben abfragen und gleichzeitig andere Aktionen in einer Linux-Umgebung ausführen?

  4. Kann ich Dota 2 unter Linux spielen?

  5. Wie kann ich den $PATH unter Linux bearbeiten?

Können die leeren Räume/der Hintergrund in einem Terminal durch ein zufälliges (aber hübsches) Muster von ASCII-Zeichen ersetzt werden?

Linux-Umgebungsvariablen

C# in Linux-Umgebung

Kann ich ein Skript in einer Eclipse-Ausführungskonfiguration ausführen?

Kernel-Hacking-Umgebung

Wie kann ich die Gruppen eines Benutzers auflisten, wenn ihre Namen Leerzeichen enthalten?