Zoeken…


Syntaxis

  • Pad toevoegen: PATH = $ PATH: / nieuw / pad
  • Pad toevoegen: PATH = / nieuw / pad: $ PATH

parameters

Parameter Details
PAD Padomgevingsvariabele

Opmerkingen

Bash-configuratiebestand:

Dit bestand is afkomstig wanneer een nieuwe interactieve Bash-shell wordt gestart.

In GNU / Linux-systemen is dit meestal het bestand ~ / .bashrc; in Mac is het ~ / .bash_profile of ~ / .profile

Exporteren:

De variabele PATH moet eenmaal worden geëxporteerd (dit wordt standaard gedaan). Als het eenmaal is geëxporteerd, blijft het geëxporteerd en worden alle aangebrachte wijzigingen onmiddellijk toegepast.

Pas wijzigingen toe:

Om wijzigingen toe te passen op een Bash-configuratiebestand, moet u dat bestand opnieuw laden in een terminal ( source /path/to/bash_config_file )

Voeg een pad toe aan de omgevingsvariabele PATH

De omgevingsvariabele PATH wordt meestal gedefinieerd in ~ / .bashrc of ~ / .bash_profile of / etc / profile of ~ / .profile of /etc/bash.bashrc (distro-specifiek Bash-configuratiebestand)

$ 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

Als we nu een pad (bijvoorbeeld ~/bin ) aan de variabele PATH willen toevoegen:

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

Maar dit zal de PATH alleen wijzigen in de huidige shell (en de bijbehorende subshell). Zodra u de shell verlaat, is deze wijziging verdwenen.

Om het permanent te maken, moeten we dat stukje code toevoegen aan het bestand ~ / .bashrc (of wat dan ook) en het bestand opnieuw laden.

Als u de volgende code uitvoert (in terminal), wordt ~/bin permanent aan het PATH toegevoegd:

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

Uitleg:

  • echo 'PATH=~/bin:$PATH' >> ~/.bashrc voegt de regel PATH=~/bin:$PATH aan het einde van het ~ / .bashrc bestand (je zou het kunnen doen met een teksteditor)
  • source ~/.bashrc herlaadt het ~ / .bashrc bestand

Dit is een stukje code (uitgevoerd in terminal) die controleert of een pad al is opgenomen en alleen het pad toevoegt als dit niet het geval is:
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"

Verwijder een pad uit de omgevingsvariabele PATH

Als u een PATH uit een omgevingsvariabele PATH wilt verwijderen, moet u ~ / .bashrc of ~ / .bash_profile of / etc / profile of ~ / .profile of /etc/bash.bashrc (distro-specifiek) bestand bewerken en de opdracht verwijderen voor dat specifieke pad.

In plaats van de exacte toewijzing te vinden, kunt u in de laatste fase gewoon een vervanging doen in het $PATH .

Het volgende zal $path veilig verwijderen uit $PATH :

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')"

Om het permanent te maken, moet u het toevoegen aan het einde van uw bash-configuratiebestand.


Je kunt het op een functionele manier doen:
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 ...

Dit maakt het eenvoudiger om meerdere paden te verwerken.

Opmerkingen:

  • U moet deze codes toevoegen in het Bash-configuratiebestand (~ / .bashrc of wat dan ook).
  • Voer source ~/.bashrc uit om het Bash-configuratiebestand (~ / .bashrc) opnieuw te laden.


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow