Den Gültigkeitsbereich von Variablen verstehen
In Shell-Skripten sind Variablen standardmäßig global. Das bedeutet, sie können von überall im Skript aufgerufen werden. Sie können jedoch das Schlüsselwort local verwenden, um Variablen zu erstellen, die nur innerhalb einer Funktion zugänglich sind. Dies nennt man lokalen Gültigkeitsbereich (Local Scope).
Lassen Sie uns functions.sh anpassen, um dieses Konzept zu verdeutlichen.
Aktualisieren Sie den Inhalt mit folgendem Code:
#!/bin/bash
## Globale Variable
GLOBAL_VAR="I'm global"
## Funktion mit einer lokalen Variable
demonstrate_scope() {
local LOCAL_VAR="I'm local"
echo "Inside function: GLOBAL_VAR = $GLOBAL_VAR"
echo "Inside function: LOCAL_VAR = $LOCAL_VAR"
}
## Die Funktion aufrufen
demonstrate_scope
echo "Outside function: GLOBAL_VAR = $GLOBAL_VAR"
echo "Outside function: LOCAL_VAR = $LOCAL_VAR"
Das passiert in diesem Skript:
- Wir definieren eine globale Variable
GLOBAL_VAR.
- Innerhalb der Funktion
demonstrate_scope definieren wir eine lokale Variable LOCAL_VAR mit dem Schlüsselwort local.
- Wir geben beide Variablen innerhalb der Funktion aus.
- Nach dem Funktionsaufruf versuchen wir, beide Variablen erneut außerhalb der Funktion auszugeben.
Speichern Sie die Datei und führen Sie sie aus:
./functions.sh
Sie sollten eine Ausgabe ähnlich dieser sehen:
Inside function: GLOBAL_VAR = I'm global
Inside function: LOCAL_VAR = I'm local
Outside function: GLOBAL_VAR = I'm global
Outside function: LOCAL_VAR =
Beachten Sie, dass LOCAL_VAR leer ist, wenn darauf von außerhalb der Funktion zugegriffen wird. Das liegt daran, dass lokale Variablen nur innerhalb der Funktion existieren, in der sie definiert wurden.