Soweit ich weiß, besteht die übliche Möglichkeit, der PATH
Umgebungsvariablen einen Pfad hinzuzufügen, darin, Pfade zu verketten, die durch das :
Zeichen getrennt sind.
Wenn ich zum Beispiel drei Pfade hinzufügen möchte /my/path/1
, /my/path/2
und /my/path/3
, müsste ich das wie folgt tun:
PATH=$PATH:/my/path/1:/my/path/2:/my/path/3
das ist nicht leicht zu lesen.
Gibt es eine Möglichkeit, Pfade zur Variablen mithilfe einer mehrzeiligen Syntax zu definieren oder hinzuzufügen ? Verwenden Sie möglicherweise Arrays? Ich suche so etwas:PATH
PATH =
$PATH
/my/path/1
/my/path/2
/my/path/3
Für den Fall, dass es interessante Lösungen gibt, die Shell-spezifisch sind, suche ich eine Lösung in zsh.
quelle
paste
Lösung zu verwenden?Keine interessante Lösung, aber sehr portabel:
quelle
+=
, um zu vermeiden, dass die Zeichenfolge vollständig neu erstellt werden muss.In zsh
$path
ist ein Array:Hinweis: Beide
path
sind Kleinbuchstaben.quelle
Wenn Sie in zsh Verzeichnisse am Ende des Pfads hinzufügen:
Portabel: Wie füge ich einen Pfad korrekt zu PATH hinzu?
Sie können Glob-Qualifikatoren verwenden , um Einträge auszuschließen, bei denen es sich nicht um vorhandene Verzeichnisse oder symbolische Verknüpfungen zu solchen handelt. Dies kann wünschenswert oder nicht wünschenswert sein, abhängig davon, ob Sie erwarten, dass die Verzeichnisse möglicherweise später während der Sitzung hinzugefügt werden (z. B. wenn sie sich auf entfernten Dateisystemen befinden). Dies ist mit der
path+=/my/path
Syntax nicht möglich, da sich die rechte Seite in einem Zeichenfolgenkontext befindet und daher keine Verschiebungen durchläuft. Dies ist möglich,path+=(/my/path)
da jedes Array-Element in einem Listenkontext erweitert wird.quelle