it-swarm.com.de

Hinzufügen eines neuen Eintrags zur PATH-Variablen in ZSH

Ich verwende zsh und versuche, der Variablen PATH einen neuen Eintrag (/home/david/pear/bin) Hinzuzufügen, aber ich weiß nicht wie.

Das, was mich am meisten verwirrt, ist, dass es in meiner ~/.zshrc - Datei keinen einzigen Verweis auf eine PATH -Variable gibt, sondern das Ausführen von echo $PATH:

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Also wird irgendwo eine PATH Variable gesetzt.

116
David Barreto

Hier:

export PATH=/home/david/pear/bin:$PATH
140
Linuxios

Tatsächlich können Sie mit ZSH spezielle Zuordnungen von Umgebungsvariablen verwenden. Sie können also einfach Folgendes tun:

# append
path+=('/home/david/pear/bin')
# or prepend
path=('/home/david/pear/bin' $path)
# export to sub-processes (make it inherited by child processes)
export PATH

Für mich ist das eine sehr nette Funktion, die sich auf andere Variablen übertragen lässt. Beispiel:

typeset -T LD_LIBRARY_PATH ld_library_path :
117
ony

Sie können minimal an Ihre PATH anhängen. Klammern sind nur erforderlich, wenn Sie mehr als ein Element anhängen. Normalerweise werden auch keine Anführungszeichen benötigt. Also ist der einfache, kurze Weg zum Anhängen :

path+=/some/new/bin/dir

Gemeinsame Nutzung

Dann lautet das übliche Muster zum Testen eines neuen Skripts/einer neuen ausführbaren Datei:

path+=$PWD/.
# or
path+=$PWD/bin

Diese Kleinbuchstaben-Syntax verwendet path als Array , wirkt sich jedoch auch auf das Partneräquivalent in Großbuchstaben aus, PATH (an die es über typeset "gebunden" ist).

(Beachten Sie, dass kein : Als Trennzeichen benötigt/gewünscht wird .)

Verwandte Leckerbissen

Wenn Sie path auf diese Weise (als Array) behandeln, bedeutet dies auch: Sie müssen kein rehash ausführen, um das neue zu erhalten Pfadbefehle gefunden werden.

Schauen Sie sich auch vared path An, um path und andere Dinge dynamisch zu bearbeiten.

Möglicherweise interessiert Sie nur path für diese Frage, aber da es sich um Exporte und Arrays handelt, beachten Sie, dass Arrays im Allgemeinen nicht exportiert werden können. =

Sie können sogar verhindern, dass PATH doppelte Einträge annimmt (siehe this und this) ):

typeset -U path
20
Micah Elliott

ein Liner, ohne Öffnung ~/.zshrc Datei

echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc

oder

echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc

Um den Effekt zu sehen, mache source ~/.zshrc auf derselben Registerkarte oder öffnen Sie eine neue Registerkarte

19
Siva Praveen

OPTION 1: Füge diese Zeile zu ~/.zshrc hinzu:

export "PATH=$HOME/pear/bin:$PATH"

Danach musst du source ~/.zshrc, damit Ihre Änderungen wirksam werden OR Dieses Fenster schließen und ein neues öffnen

OPTION 2: führen Sie es in der Terminalkonsole aus, um diesen Pfad nur der aktuellen Terminal-Fenstersitzung hinzuzufügen. Wenn Sie das Fenster/die Sitzung schließen, geht sie verloren.

8
Dimitar
  1. Pfad zu ~/.zshrc hinzugefügt

    Sudo vi ~/.zshrc

    neuen Pfad hinzufügen

    export PATH="$PATH:[NEW_DIRECTORY]/bin"
    
  2. Aktualisieren Sie ~/.zshrc

    Speichern Sie ~/.zshrc

    source ~/.zshrc

  3. Überprüfen Sie PATH

    echo $PATH

2
saneryee