Als systeembeheerder weet u waarschijnlijk hoe belangrijk omgevingsvariabelen zijn in Bash.
Milieuvariabelen worden gebruikt om variabelen te definiëren die invloed hebben op hoe programma’s worden uitgevoerd.
In Bash definiëren omgevingsvariabelen veel verschillende dingen: uw standaardeditor, uw huidige gebruikersnaam of de huidige tijdzone.
Het belangrijkste is dat omgevingsvariabelen kunnen worden gebruikt in Bash-scripts om het gedrag van je scripts aan te passen.
In deze tutorial gaan we zien hoe je eenvoudig omgevingsvariabelen kunt instellen in Bash.
Inhoudsopgave
Omgevingsvariabelen instellen in Bash
De eenvoudigste manier om omgevingsvariabelen in Bash in te stellen, is door gebruik te maken van het trefwoord “export”, gevolgd door de naam van de variabele, een gelijkheidsteken en de waarde die aan de omgevingsvariabele moet worden toegewezen.
Om bijvoorbeeld de waarde “abc” aan de variabele “VAR” toe te wijzen, schrijft u het volgende commando
$ export VAR=abc
Als u spaties in uw waarde wilt hebben, zoals “mijn waarde” of “Linus Torvalds”, moet u uw waarde tussen dubbele aanhalingstekens plaatsen.
$ export VAR="my value"$ export VAR="Linus Torvalds"
Om uw omgevingsvariabele weer te geven, moet u de variabele laten voorafgaan door een dollarteken.
$ echo $VARLinus Torvalds
Ook kunt u het commando “printv” gebruiken om de waarde van uw omgevingsvariabele af te drukken.
Dit keer hoeft u er geen dollarteken voor te zetten.
$ printenv VARLinus Torvalds
Variabelen instellen met Bash interpolatie
In sommige gevallen moet u een specifieke omgevingsvariabele instellen op het resultaat van een commando op uw server.
Om dat te bereiken, hebt u Bash interpolatie nodig, ook wel parameter substitutie genoemd.
Zeg bijvoorbeeld dat u de waarde van uw huidige shell-instance wilt opslaan in een variabele met de naam MYSHELL.
Om een omgevingsvariabele in te stellen met behulp van parameter substitutie, gebruikt u het trefwoord “export” en laat u het commando insluiten tussen afsluitende haakjes, voorafgegaan door een dollarteken.
$ export VAR=$(<bash command>)
Bij wijze van voorbeeld, gegeven ons vorige voorbeeld, als u de omgevingsvariabele “SHELL” in een nieuwe variabele met de naam “MYSHELL” wilt hebben, zou u
$ export MYSHELL=$(echo $SHELL)
Gefeliciteerd, u hebt met succes uw eerste omgevingsvariabele in Bash gemaakt!
Instellen van permanente omgevingsvariabelen in Bash
Wanneer u een waarde aan een variabele toekent met “export” in een shell, blijven de wijzigingen niet bewaard bij een herstart of in andere shells.
Om een permanente omgevingsvariabele in Bash in te stellen, moet u het export commando gebruiken en het toevoegen aan uw “.bashrc” bestand (als deze variabele alleen voor u is) of aan het /etc/environment bestand als u wilt dat alle gebruikers deze omgevingsvariabele hebben.
$ nano /home/user/.bashrc# Content of the .bashrc fileexport VAR="My permanent variable"
Om ervoor te zorgen dat de wijzigingen op uw huidige sessie worden toegepast, moet u een broncode van uw .bashrc bestand.
$ source .bashrc
Nu kunt u de waarde van uw omgevingsvariabele controleren in elke shell die u wilt.
$ printenv VAR
Deze variabele wordt in elke shell-instantie voor de huidige gebruiker aangemaakt.
Als u deze echter toevoegt aan het bestand “/etc/environment”, wordt de omgevingsvariabele voor alle gebruikers op uw systeem ingesteld.
$ nano /etc/environment# Content of the environment fileexport GLOBAL="This is a global variable"
Na sourcing van het bestand worden de omgevingsvariabelen voor elke gebruiker op uw host ingesteld.
$ source /etc/environment$ echo $GLOBAL
Geweldig, u hebt met succes een globale omgevingsvariabele op uw server ingesteld!
Conclusie
In deze tutorial hebt u geleerd hoe u eenvoudig omgevingsvariabelen kunt instellen in Bash met behulp van het export commando.
U hebt ook geleerd dat wijzigingen pas permanent worden gemaakt als u ze toevoegt aan uw :
- .bashrc : als u wilt dat de variabele alleen geldt voor de huidige ingelogde gebruiker;
- /etc/environment : als u wilt dat de variabele wordt gedeeld door alle gebruikers op het systeem.
Als u geïnteresseerd bent in Linux Systeembeheer, of in Bash, dan hebben we een complete sectie op de website gewijd aan dit onderwerp, dus neem zeker een kijkje!