Bash ist eine beliebte Skriptsprache, die zur Automatisierung von Aufgaben und zur Arbeit mit der Befehlszeilenschnittstelle verwendet wird. Eine der Kernmerkmale von Bash ist die Fähigkeit, Variablen zu definieren, mit denen Werte gespeichert und zwischen verschiedenen Befehlen oder Skripten bestanden werden können. Bei der Definition von Variablen in Bash muss jedoch der Unterschied zwischen der Definition einer Variablen mit oder ohne das Schlüsselwort für Exportieren klar sein.
Befolgen Sie die Richtlinien dieses Artikels, um zu erfahren, wie eine Variable mit oder ohne Export in Bash definiert werden kann.
Definieren einer Variablen ohne Export in Bash
Das Definieren einer Variablen ohne Export macht es zu einer lokalen Variablen, auf die nur innerhalb der aktuellen Shell -Sitzung oder des Skripts zugegriffen werden kann, was bedeutet, dass die Variable nicht von untergeordneten Prozessen oder Skripten zugegriffen werden kann, auf die aus dem aktuellen Skript aufgerufen wird. Die lokalen Variablen sind nützlich, wenn wir temporäre Werte speichern, die nur innerhalb eines bestimmten Teils eines Skripts benötigt werden. Nehmen wir beispielsweise an, Sie haben ein Skript, das eine Variable nennt My_var ohne Export:
#!/Bin/Bash
My_var = "Hallo, Linux!"
echo $ my_var
./Child_Script.Sch
In diesem Fall, My_var ist eine lokale Variable und ist nur innerhalb des aktuellen Skripts zugänglich. Wenn das Skript ausgeführt wird, druckt es aus "Hallo, Linux!” zur Konsole, aber wenn es das untergeordnete Skript anruft (./Child_Script.Sh) kann das untergeordnete Skript nicht auf den Wert von zugreifen My_var.
Im obigen Bild kann man deutlich erkennen, dass, wenn das untergeordnete Skript genannt wird.
Definieren einer Variablen mit Export in Bash
Andererseits macht es eine Umgebungsvariable, eine Variable mit dem Export -Schlüsselwort zu definieren. Umgebungsvariablen sind für alle untergeordneten Prozesse zugänglich, die aus der aktuellen Shell -Sitzung oder -Skript hervorgegangen sind. Dies bedeutet, dass die Variable für verschiedene Skripte oder Befehle verwendet werden kann, die aus dem aktuellen Skript aufgerufen werden. Betrachten wir also dasselbe Skript, aber mit My_var definiert mit Export:
#!/Bin/Bash
Exportieren Sie my_var = "Hallo, Linux!"
echo $ my_var
./Child_Script.Sch
In diesem Fall, My_var ist eine Umgebungsvariable und ist für alle untergeordneten Prozesse zugänglich, die aus der aktuellen Shell -Sitzung oder -Skript hervorgegangen sind. Wenn das Skript ausgeführt wird, druckt es aus "Hallo, Linux!” zur Konsole und wenn es das untergeordnete Skript anruft ./Child_Script.Sch, Das untergeordnete Skript kann auf den Wert von zugreifen My_var.
Im obigen Bild kann man deutlich erkennen, dass das Kindskript auf den variablen Wert zugegriffen und den Wert zurückgegeben hat, der warHallo Linux”.
Notiz: Hier im Beispielcode habe ich das untergeordnete Skript erstellt, das die Variable im Hauptskript aufruft. Hier finden Sie den Shell -Code für das untergeordnete Skript: Weiter müssen Sie die Skriptdatei mithilfe der Skriptdatei ausführen lassen "Chmod +x" Befehl, damit Sie das Skript ausführen können.
#!/Bin/Bash
echo $ my_var
Abschluss
Bei der Arbeit mit Variablen in Bash ist es wichtig, den Umfang der Variablen zu verstehen. Das Definieren einer Variablen ohne Export macht es zu einer lokalen Variablen, auf die nur innerhalb der aktuellen Shell -Sitzung oder des Skripts zugegriffen werden kann, während eine Variable mit Export definiert wird.