Als Systemadministrator wissen Sie wahrscheinlich, wie wichtig Umgebungsvariablen in der Bash sind.
Umgebungsvariablen werden verwendet, um Variablen zu definieren, die einen Einfluss darauf haben, wie Programme laufen.
In der Bash definieren Umgebungsvariablen viele verschiedene Dinge: Ihren Standardeditor, Ihren aktuellen Benutzernamen oder die aktuelle Zeitzone.
Vor allem aber können Umgebungsvariablen in Bash-Skripten verwendet werden, um das Verhalten Ihrer Skripte zu verändern.
In diesem Tutorial werden wir sehen, wie Sie Umgebungsvariablen in der Bash einfach setzen können.
Inhaltsverzeichnis
Umgebungsvariablen in der Bash setzen
Am einfachsten setzen Sie Umgebungsvariablen in der Bash mit dem Schlüsselwort „export“, gefolgt von dem Variablennamen, einem Gleichheitszeichen und dem Wert, der der Umgebungsvariablen zugewiesen werden soll.
Um zum Beispiel der Variablen „VAR“ den Wert „abc“ zuzuweisen, würden Sie folgenden Befehl schreiben
$ export VAR=abc
Wenn Sie Leerzeichen in Ihrem Wert haben wollen, wie zum Beispiel „mein Wert“ oder „Linus Torvalds“, müssen Sie Ihren Wert in Anführungszeichen einschließen.
$ export VAR="my value"$ export VAR="Linus Torvalds"
Um Ihre Umgebungsvariable anzuzeigen, müssen Sie der Variable ein Dollarzeichen voranstellen.
$ echo $VARLinus Torvalds
Auch mit dem Befehl „printenv“ können Sie den Wert Ihrer Umgebungsvariablen ausgeben.
Diesmal müssen Sie kein Dollarzeichen voranstellen.
$ printenv VARLinus Torvalds
Variablen mit Bash-Interpolation setzen
In manchen Fällen müssen Sie eine bestimmte Umgebungsvariable auf das Ergebnis eines Befehls auf Ihrem Server setzen.
Um das zu erreichen, benötigen Sie die Bash-Interpolation, auch Parametersubstitution genannt.
Angenommen, Sie möchten den Wert Ihrer aktuellen Shell-Instanz in einer Variablen namens MYSHELL speichern.
Um eine Umgebungsvariable mit Hilfe der Parametersubstitution zu setzen, verwenden Sie das Schlüsselwort „export“ und setzen den Befehl in eine schließende Klammer, der ein Dollarzeichen vorangestellt ist.
$ export VAR=$(<bash command>)
Wenn Sie zum Beispiel in unserem vorherigen Beispiel die Umgebungsvariable „SHELL“ in einer neuen Variablen namens „MYSHELL“ haben möchten, würden Sie schreiben
$ export MYSHELL=$(echo $SHELL)
Glückwunsch, Sie haben erfolgreich Ihre erste Umgebungsvariable in der Bash erstellt!
Dauerhafte Umgebungsvariablen in der Bash setzen
Wenn Sie einer Variablen in einer Shell mit „export“ einen Wert zuweisen, bleiben die Änderungen bei Neustarts oder in anderen Shells nicht erhalten.
Um eine Umgebungsvariable in der Bash dauerhaft zu setzen, müssen Sie den Befehl „export“ verwenden und ihn entweder in Ihre „.bashrc“-Datei aufnehmen (wenn diese Variable nur für Sie bestimmt ist) oder in die Datei /etc/environment, wenn alle Benutzer diese Umgebungsvariable haben sollen.
$ nano /home/user/.bashrc# Content of the .bashrc fileexport VAR="My permanent variable"
Damit die Änderungen auf Ihre aktuelle Sitzung angewendet werden, müssen Sie Ihre .bashrc-Datei ändern.
$ source .bashrc
Nun können Sie den Wert Ihrer Umgebungsvariablen in jeder beliebigen Shell überprüfen.
$ printenv VAR
Diese Variable wird in jeder Shell-Instanz für den aktuellen Benutzer erstellt.
Wenn Sie sie jedoch zur Datei „/etc/environment“ hinzufügen, wird die Umgebungsvariable für alle Benutzer auf Ihrem System gesetzt.
$ nano /etc/environment# Content of the environment fileexport GLOBAL="This is a global variable"
Nach dem Hinzufügen der Datei wird die Umgebungsvariable für jeden Benutzer auf Ihrem Rechner gesetzt.
$ source /etc/environment$ echo $GLOBAL
Gut, Sie haben erfolgreich eine globale Umgebungsvariable auf Ihrem Server gesetzt!
Abschluss
In diesem Tutorial haben Sie gelernt, wie Sie Umgebungsvariablen in der Bash einfach mit dem Befehl export setzen können.
Sie haben auch gelernt, dass Änderungen erst dann dauerhaft werden, wenn Sie sie in Ihre :
- .bashrc : wenn die Variable nur für den aktuell angemeldeten Benutzer gelten soll;
- /etc/environment : wenn die Variable für alle Benutzer des Systems gelten soll.
Wenn Sie sich für Linux-Systemadministration oder Bash interessieren, haben wir einen kompletten Bereich auf unserer Website, den Sie sich unbedingt ansehen sollten!