Bash                
            PATH-omgevingsvariabele beheren
        
        
            
    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' >> ~/.bashrcvoegt de regelPATH=~/bin:$PATHaan het einde van het ~ / .bashrc bestand (je zou het kunnen doen met een teksteditor)
-  source ~/.bashrcherlaadt 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 ~/.bashrcuit om het Bash-configuratiebestand (~ / .bashrc) opnieuw te laden.