Export

Aus Foxwiki

Linux/bash:echo, export, unset

  • Wenn Sie selbst eine Variable deklarieren müssen, können Sie das einfach durch Eingabe der Variablen, gefolgt von dem zuzuweisenden Wert an der Eingabeaufforderung, erledigen
  • Variablen, die auf diese Art Werte erhalten, werden aber nicht automatisch in Subshells exportiert, wie die folgende Befehlsfolge demonstriert:
# x=5000
# echo $x
5000
# bash
# echo $x

#
  • Im ersten Schritt wurde der Variablen x der Wert 5000 zugewiesen
  • Anschließend wurde die Variable mit dem echo-Kommando ausgegeben
  • In der vierten Zeile wird mit dem Kommando bash eine Subshell gestartet
  • Der Versuch, die Variable mit dem echo-Befehl auszugeben, schlägt fehl, weil keine Vererbung der Variablen in die Subshell stattgefunden hat
  • Wenn der Inhalt einer Variablen in einer Subshell benötigt wird, muss die Variable exportiert werden. Beispiel:
# Name=Hans
# echo $Name
Hans
# export Name
# bash
# echo $Name
Hans
  • Diesmal wurde die Variable Name mit dem Kommando export exportiert, bevor die Subshell gestartet wurde
  • Wie der zweite echo-Befehl zeigt, steht die Variable danach in der Subshell zur Verfügung
  • Es ist aber auch möglich, die Deklaration und den Export einer Variablen in einem einzigen Schritt durchzuführen. Das wird in der ersten Zeile des folgenden Beispiels demonstriert:
# export Name=Willi
# bash
# echo $Name
Willi
  • Wenn Sie den Inhalt einer Variablen nicht mehr benötigen, sollten Sie diese mit dem Kommando unset wieder zurücksetzen.
  • Es ist sinnvoll, zu Beginn eines Skripts zunächst alle verwendeten Variablen zurückzusetzen. Damit verhindern Sie, dass eventuell exportierte Variablen mit gleichen Bezeichnungen den Funktionsablauf Ihres Skripts stören. Beispiel:
# unset Name

export

  • Dient zum exportieren von Variablen
  • siehe Bash/Builtin:export
  • mit der Option -f von Funktionen, sodass diese ab der (Shell)Prozess ihrer Definition auch in allen abgeleiteten Prozessen sichtbar sind ("globale Variablen").
  • Mit der Option -n kann die export-Eigenschaft entzogen werden.
  • -p listet alle exportierten Variablen und Symbole auf:
PATH=$PATH:/usr/local/bin
export PATH