Sök…


Syntax

  • Lägg till sökväg: PATH = $ PATH: / new / path
  • Lägg till sökväg: PATH = / new / path: $ PATH

parametrar

Parameter detaljer
VÄG Stegmiljövariabel

Anmärkningar

Bash-konfigurationsfil:

Denna fil kommer från varje gång ett nytt interaktivt Bash-skal startas.

I GNU / Linux-system är det i allmänhet ~ / .bashrc-filen; i Mac är det ~ / .bash_profile eller ~ / .profile

Exportera:

PATH-variabeln måste exporteras en gång (det görs som standard). När den har exporterats kommer den att förbli exporterad och alla ändringar som görs på den kommer att tillämpas omedelbart.

Applicera förändringar:

För att tillämpa ändringar i en Bash-konfigurationsfil måste du ladda om den filen i en terminal ( source /path/to/bash_config_file )

Lägg till en sökväg till PATH-miljövariabeln

Miljövariabeln PATH definieras vanligtvis i ~ / .bashrc eller ~ / .bash_profile eller / etc / profile eller ~ / .profile eller /etc/bash.bashrc (distro-specifik Bash-konfigurationsfil)

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/jdk1.8.0_92/bin:/usr/lib/jvm/jdk1.8.0_92/db/bin:/usr/lib/jvm/jdk1.8.0_92/jre/bin

Om vi nu vill lägga till en sökväg (t.ex. ~/bin ) till variabeln PATH:

PATH=~/bin:$PATH
# or
PATH=$PATH:~/bin

Men detta kommer att ändra PATH endast i det nuvarande skalet (och dess underskal). När du har lämnat skalet kommer denna ändring att försvinna.

För att göra den permanent måste vi lägga till den biten kod i filen ~ / .bashrc (eller vad som helst) och ladda om filen igen.

Om du kör följande kod (i terminal) lägger den ~/bin till PATH permanent:

echo 'PATH=~/bin:$PATH' >> ~/.bashrc && source ~/.bashrc

Förklaring:

  • echo 'PATH=~/bin:$PATH' >> ~/.bashrc lägger till raden PATH=~/bin:$PATH i slutet av ~ / .bashrc-filen (du kan göra det med en textredigerare)
  • source ~/.bashrc laddar om ~ / .bashrc-filen

Detta är en bit kod (kör i terminal) som kommer att kontrollera om en sökväg redan är inkluderad och lägga till sökvägen endast om inte:
path=~/bin            # path to be included
bashrc=~/.bashrc      # bash file to be written and reloaded
# run the following code unmodified
echo $PATH | grep -q "\(^\|:\)$path\(:\|/\{0,1\}$\)" || echo "PATH=\$PATH:$path" >> "$bashrc"; source "$bashrc"

Ta bort en sökväg från PATH-miljövariabeln

För att ta bort en PATH från en PATH-miljövariabel, måste du redigera ~ / .bashrc eller ~ / .bash_profile eller / etc / profile eller ~ / .profile eller /etc/bash.bashrc (distro-specifik) fil och ta bort uppdraget för den specifika vägen.

Istället för att hitta den exakta uppgiften, kan du bara göra en ersättning i $PATH i sitt sista skede.

Följande tar bort $path från $PATH säkert:

path=~/bin
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"

För att göra det permanent måste du lägga till det i slutet av din bash-konfigurationsfil.


Du kan göra det på ett funktionellt sätt:
rpath(){
    for path in "$@";do
        PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
    done
    echo "$PATH"
}

PATH="$(rpath ~/bin /usr/local/sbin /usr/local/bin)"
PATH="$(rpath /usr/games)"
# etc ...

Detta gör det lättare att hantera flera vägar.

Anmärkningar:

  • Du måste lägga till dessa koder i konfigurationsfilen för Bash (~ / .bashrc eller vad som helst).
  • Kör source ~/.bashrc att ladda Bash-konfigurationsfilen (~ / .bashrc).


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow