GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash-Variablen-Tutorial – 6 praktische Bash-Beispiele für globale und lokale Variablen

Dieser Artikel ist Teil unserer laufenden Bash-Tutorial-Reihe. Wie jede andere Programmiersprache stellt auch Bash Variablen zur Verfügung.

Bash-Variablen bieten temporären Speicher für Informationen, die während der Lebensdauer des Programms benötigt werden.

Syntax:

VARNAME=VALUE

Hinweis: Bei der Variablenzuweisung darf um das „=“-Zeichen kein Leerzeichen stehen. Wenn Sie VAR=VALUE verwenden, sieht die Shell das „=“ als Symbol und behandelt den Befehl als Variablenzuweisung. Wenn Sie VAR =VALUE verwenden, nimmt die Shell an, dass VAR der Name eines Befehls sein muss und versucht, ihn auszuführen.

Shell kümmert sich nicht um den Typ der Variablen. Variablen können Zeichenketten, Ganzzahlen oder reelle Zahlen speichern.

Beispiel.1 Einfache Verwendung der Bash-Variablenzuweisung

Das folgende Skript erstellt eine Variable namens LIST und weist ihr den Wert „/var/opt/bin“ zu. Um auf die Variablen zuzugreifen, stellen Sie einfach dem Variablennamen ein $ voran, wodurch Sie den in dieser Variablen gespeicherten Wert erhalten.

$ cat sample.sh
#!/bin/bash
LIST="/var/opt/bin/"
ls -l $LIST

Führen Sie das obige Skript aus, das /var/opt/bin im Langformat auflistet, wie unten gezeigt.

$ ./sample.sh
total 8
drwxrwsr-x 2 bin  bin 4096 Jan 29 06:43 softwares
drwxr-sr-x 5 root bin 4096 Sep  2  2009 llist

Bash-Variablenbereich – lokal und global

In Bash müssen Variablen nicht deklariert werden. Wenn Sie jedoch auf die bisher nicht verwendete Variable zugreifen, erhalten Sie keine Warnung oder Fehlermeldung. Stattdessen wird ein leerer Wert angezeigt.

Beispiel 2. Leere Werte in Bash-Variablen

$ cat var1.sh
#!/bin/sh
echo "Variable value is: $VAR1"
VAR1="GEEKSTUFF"
echo "Variable value is: $VAR1"

$ ./var1.sh
Variable value is:
Variable value is: GEEKSTUFF

Wie oben gezeigt, hat die Variable zunächst einen leeren Wert, nach der Zuweisung können Sie Ihre Werte abrufen. Der Befehl export wird verwendet, um Variablen aus einer interaktiven Shell zu exportieren. export zeigt die Auswirkung auf den Gültigkeitsbereich von Variablen.

Beispiel 3. Bash-Variablen ohne Export

Weisen Sie einer Variablen einen Wert in einer interaktiven Shell zu und versuchen Sie, in Ihrem Shell-Skript darauf zuzugreifen.

$ VAR2=LINUX

$ cat var2.sh
#!/bin/bash
echo "VAR2=$VAR2"
VAR2=UNIX
echo "VAR2=$VAR2"

Führen Sie nun das obige Skript wie unten gezeigt aus.

$ ./var2.sh
VAR2=
VAR2=UNIX

Trotzdem erhalten Sie einen leeren Wert für die Variable VAR2. Die Shell speichert die Variable VAR2 mit dem LINUX nur in der aktuellen Shell. Während der Ausführung von var2.sh erzeugt es die Shell und führt das Skript aus. Die Variable VAR2 hat also nicht den Wert in der erzeugten Shell. Sie müssen die Variable exportieren, damit sie von einem anderen Programm geerbt werden kann – einschließlich eines Shell-Skripts, wie unten gezeigt.

Beispiel 4. Exportieren einer Bash-Variablen

$ export VAR2=LINUX

$ cat var2.sh
#!/bin/bash
echo "VAR2=$VAR2"
VAR2=UNIX
echo "VAR2=$VAR2"

Führen Sie nun das obige Skript aus.

$ ./var2.sh
VAR2=LINUX
VAR2=UNIX
$
$echo $VAR2
LINUX

Jetzt können Sie feststellen, dass nach Ausführung des Shell-Skripts var2.sh der Wert von VAR2 LINUX ist. Weil die Variablen nicht an Ihre interaktive Shell zurückgegeben werden, es sei denn, Sie führen das Skript in der aktuellen Shell aus.

Eine Bash-Variable deklarieren

Mit der Declare-Anweisung in Bash können wir den den Variablen zugewiesenen Wert begrenzen. Es schränkt die Eigenschaften von Variablen ein. Die Option in einer Declare-Anweisung wird verwendet, um den Typ einer Variablen zu bestimmen.

Syntax:

declare option variablename
  • declare ist ein Schlüsselwort
  • -Option könnte sein:
    • -r schreibgeschützte Variable
    • -i Integer-Variable
    • -eine Array-Variable
    • -f für Funktionen
    • -x deklariert und exportiert über die Umgebung zu nachfolgenden Befehlen.

Beispiel 5. Deklaration einer Bash-Variablen mit der Deklaration

$ cat declar.sh
#!/bin/bash
declare -i intvar
intvar=123 # Assigning integer value.
echo $intvar
intvar=12.3 #Trying to store string type value to an integer variable
echo $intvar

declare -r rovar=281
rovar=212 # Trying to change the readonly variable.

Aus der folgenden Ausführung können Sie die Fehlermeldung erkennen, wenn Sie einer Variablen ungültige Daten zuweisen.

$ ./declar.sh
123
t.sh: line 6: 12.3: syntax error: invalid arithmetic operator (error token is ".3")
123
t.sh: line 11: rovar: readonly variable

Globale Bash-Variablen

Globale Variablen werden auch als Umgebungsvariablen bezeichnet, die allen Shells zur Verfügung stehen. Der Befehl printenv wird verwendet, um alle Umgebungsvariablen anzuzeigen.

$ printenv
SHELL=/bin/bash
HISTSIZE=1000
SSH_TTY=/dev/pts/1
HOME=/root
LOGNAME=root
CVS_RSH=ssh

Lokale Bash-Variablen

Lokale Variablen sind nur innerhalb des Codeblocks sichtbar. local ist ein Schlüsselwort, das verwendet wird, um die lokalen Variablen zu deklarieren. In einer Funktion hat eine lokale Variable nur innerhalb dieses Funktionsblocks eine Bedeutung.

Beispiel 6. Globale und lokale Bash-Variablen

$ cat localvar.sh
#!/bin/bash
pprint()
{
  local lvar="Local content"
  echo -e "Local variable value with in the function"
  echo $lvar
  gvar="Global content changed"
  echo -e "Global variable value with in the function"
  echo $gvar
}

gvar="Global content"
echo -e "Global variable value before calling function"
echo $gvar
echo -e "Local variable value before calling function"
echo $lvar
pprint
echo -e "Global variable value after calling function"
echo $gvar
echo -e "Local variable value after calling function"
echo $lvar

Führen Sie das obige Skript aus,

$ sh t.sh
Global variable value before calling function
Global content
Local variable value before calling function

Local variable value with in the function
Local content
Global variable value with in the function
Global content changed
Global variable value after calling function
Global content changed
Local variable value after calling function

In der obigen Ausgabe haben lokale Variablen vor und nach dem Aufruf der Funktion nur einen leeren Wert. Sein Geltungsbereich liegt nur innerhalb der Funktion. Sie ist aus der Funktion verschwunden, wohingegen die globale Variable auch nach der Ausführung der Funktion den aktualisierten Wert hat.


Linux
  1. Bash For Loop Guide und Beispiele

  2. Linux nice and renice Command Tutorial (7 Beispiele)

  3. C-Programmier-Tutorial 4 - Variablen und Speicher

  4. Das ultimative Bash-Array-Tutorial mit 15 Beispielen

  5. Perl-Array-Referenz- und Dereferenzierungs-Tutorial mit praktischen Beispielen

Bash For Loop mit praktischen Beispielen

Unterschied zwischen der Definition von Bash-Variablen mit und ohne Export

Bash-Scripting – Variablen mit Beispielen erklärt

16 Praktische und nützliche Beispiele für Echo Command unter Linux

Bash Scripting Einführungstutorial mit 5 praktischen Beispielen

Tutorial zu Bash-Shell-Funktionen mit 6 praktischen Beispielen