Geltungsbereich der Bash-Variablen

Abid Ullah 15 Februar 2024
  1. Bash-Variablenbereich in Linux
  2. So deklarieren Sie eine Variable in Bash
  3. der Gültigkeitsbereich von Variablen in Bash
  4. Arten von Variablen
Geltungsbereich der Bash-Variablen

In diesem Artikel erfahren wir etwas über den Bash-Variablenbereich in Linux. Wir lernen auch, wie man eine Variable im Bash-Skript im Linux-Betriebssystem deklariert.

Darüber hinaus werden wir verschiedene Arten von Variablen sehen und erfahren, wie Sie mit Linux OS auf lokale und globale Variablen in Bash-Skripten zugreifen können. Beginnen wir mit dem Konzept der in Linux verwendeten Variablen.

Bash-Variablenbereich in Linux

Variablen sind temporäre Speicherplätze für verschiedene Datentypen, die in jeder Programmiersprache verarbeitet werden können. Eine Variable wird häufig mit zwei getrennten Entitäten korreliert: einem Datentyp und seinem Wert.

Der Datentyp beschreibt die in einer Variablen gehaltenen Daten, während der Wert die Daten selbst darstellt. Bei der Deklaration einer Variablen in der Bash-Programmierung müssen wir den Datentyp nicht explizit angeben.

Das liegt daran, dass die Programmiersprache den Datentyp selbst erkennt. Wenn wir beispielsweise in der Bash einer Variablen eine Zahl zuweisen, wird diese sofort als Ganzzahl behandelt.

So deklarieren Sie eine Variable in Bash

In der Bash können wir mit einem Gleichheitszeichen '=' eine Variable mit beliebigem Namen deklarieren und mit dem Wert zuweisen. Hier sind einige Regeln, denen wir folgen können, um Variablen in Bash zu deklarieren:

  • Groß- und Kleinbuchstaben, Ziffern, Unterstriche und Dezimalzahlen sind alle akzeptable Zeichen für Variablennamen.
  • Die Verwendung von Großbuchstaben für Variablennamen in Bash-Skripten wird empfohlen.
  • Geben Sie um das Gleichheitszeichen '=' kein Leerzeichen ein.
  • Alle vordefinierten Schlüsselwörter sind eingeschränkt, z. B. if, else, local usw.

Unten ist das Beispiel für die Deklaration einer String-Variablen in Bash. Wir öffnen das Terminal und deklarieren die Variable. Vergessen Sie nicht, dass wir beim Deklarieren von Variablen kein Leerzeichen um das Gleichheitszeichen ('=') setzen dürfen.

$ _name=abid

Wir verwenden echo, um die Ausgabe der Variablen zu erhalten.

$ echo $_name

Ausgang:

abid

Deklarieren einer Integer-Variablen in Bash.

$ _age=24

Ebenso können wir mit echo auch die Ausgabe dieser Variablen erhalten.

$ echo $_age

Ausgang:

24

der Gültigkeitsbereich von Variablen in Bash

Der Geltungsbereich einer Bash-Variablen kann wie in jeder anderen Programmiersprache entweder lokal oder global sein. Es spielt keine Rolle, wo sie in unserem Bash-Skript deklariert werden.

Alle Variablen in Bash haben standardmäßig einen globalen Geltungsbereich. Dies zeigt an, dass eine Variable in jeder Funktion in einem Bash-Skript verwendet werden kann, selbst wenn sie mitten im Skript definiert ist.

Anders ausgedrückt, wir können argumentieren, dass wir in Bash nicht immer eine Variable am Anfang eines Skripts deklarieren müssen, um ihren Geltungsbereich global zu machen.

Darüber hinaus müssen wir explizit das Schlüsselwort local verwenden, wenn wir eine Variable in Bash deklarieren, wenn wir möchten, dass der Geltungsbereich dieser Variablen auf eine bestimmte Funktion beschränkt wird, was bedeutet, dass keine andere Funktion in diesem Skript oder anderswo darauf zugreifen können sollte .

Dadurch wird sichergestellt, dass der Gültigkeitsbereich der Variablen auf die Funktion beschränkt ist, in der sie definiert wurde.

Arten von Variablen

Es gibt hauptsächlich drei Arten von Variablenbereichen, die wir kennen müssen.

  1. Lokale Variablen
  2. Globale Variablen
  3. Umgebungsvariablen

Zugriff auf lokale Variable in Bash

Wir können auf lokale Variablen nur innerhalb des Codeblocks zugreifen, in dem wir sie deklariert haben. Wenn wir beispielsweise eine Variable in unserem Bash-Skript deklarieren, können wir außerhalb des Codes nicht darauf zugreifen.

Beispielcode:

#!/bin/bash
echo "Learning the scope of local and global variables."

function_localVar(){
    echo "Within the function function_localVar"
    echo "Assign a variable with local keyword to a variable name: varLocal"
    local varLocal=27
    echo "Assign a variable without local keyword to a variable name: varLocal_wo"
    varLocal_wo=9
    echo "Printing within the function."
    echo "Value assigned to one with local keyword varLocal = $varLocal and without local keyword varLocal_wo = $varLocal_wo"
    echo "Exiting function_localVar"
}

glob_var=91
echo "Start of the code!"
echo "Global Variable = $glob_var"
echo "Local variable before calling function to one with local keyword varLocal = ** $varLocal ** and without local keyword varLocal_wo = ** $varLocal_wo **"
echo "Calling the function."

function_localVar

echo "Printing outside the function."
echo "Value assigned to one with local keyword varLocal = $varLocal and without local keyword varLocal_wo = $varLocal_wo"

Ausgang:

Learning the scope of local and global variables.
Start of the code!
Global Variable = 91
Local variable before calling function to one with local keyword varLocal = **  ** and without local keyword varLocal_wo = **  **
Calling the function.
Within the function function_localVar
Assign a variable with local keyword to a variable name: varLocal
Assign a variable without local keyword to a variable name: varLocal_wo
Printing within the function.
Value assigned to one with local keyword varLocal = 27 and without local keyword varLocal_wo = 9
Exiting function_localVar
Printing outside the function.
Value assigned to one with local keyword varLocal = and without local keyword varLocal_wo = 9

Bash-Variablenbereich - lokale Variable

Aus dem folgenden Code geht hervor, dass das Schlüsselwort local möglicherweise den Geltungsbereich local festlegt, und selbst wenn die Variable ausserhalb der Funktion gelesen wird, wo sie als local definiert wurde, sie leer zurückgibt.

Zugriff auf globale Bereichsvariablen in Bash

Wir können im gesamten Bash-Skript auf globale Variablen zugreifen. Dieses Beispiel unten hilft uns zu verstehen, wie der Bereich der globalen Variablen in Bash funktioniert/funktioniert.

Beispielcode:

var1='Abid'
var2='Ali'
my_function () {
    local var1='Micheal'
    var2='Den'
    echo "Inside function: var1: $var1, var2: $var2"
}
echo "Before executing the function: var1: $var1, var2: $var2"
my_function
echo "After executing the function: var1: $var1, var2: $var2"

Ausgang:

Before executing the function: var1: Abid, var2: Ali
Inside function: var1: Micheal, var2: Den
After executing the function: var1: Abid, var2: Den

Bash-Variablenbereich - globale Variable

Die Ergebnisse des obigen Codestücks führen uns zu der folgenden Schlussfolgerung:

  • Immer wenn eine lokale Variable mit demselben Namen wie eine vorhandene globale Variable im Rahmen der Funktion gesetzt wird, hat die lokale Variable Vorrang.
  • Änderungen an globalen Variablen können tatsächlich innerhalb der Funktion vorgenommen werden.

Umgebungsvariable

Umgebungsvariablen (ENVs) spezifizieren im Wesentlichen, wie die Umgebung funktioniert. In Bash kann eine Umgebungsvariable entweder globalen oder lokalen Geltungsbereich haben.

Wir können überall in der Umgebung eines Terminals auf ein global gültiges ENV zugreifen, das in diesem Terminal generiert wird. Da es in dem von diesem Terminal begrenzten Kontext arbeitet, kann es in jedem Skript, Programm oder Prozess verwendet werden.

Keine Anwendung oder kein Prozess, der im Terminal ausgeführt wird, kann nicht auf einen dort angegebenen lokal begrenzten ENV zugreifen. Nur das Terminal, für das wir die Variable definiert haben, hat Zugriff darauf.

Umgebungsvariablen setzen

Umgebungsvariable als globaler Geltungsbereich:

$ export COUNTRY=USA
or
$ set NAME=Abid

Umgebungsvariable als lokaler Geltungsbereich:

$ NAME=Abid

Jetzt geht es darum, Umgebungsvariablen anzuzeigen. Wir können Umgebungsvariablen wie normale Variablen mit echo anzeigen.

$ echo $COUNTRY 

Ausgang:

USA

Die Ausgabe dieses Befehls ist der Wert, den wir dieser Variablen COUNTRY zugewiesen haben, also USA.

Alle Umgebungsvariablen anzeigen

Wir können alle ENVs mit drei verschiedenen Befehlen anzeigen.

  1. // for displaying all the global Environment Variables only
    $ printenv
    
  2. // We use this command to display local and global Environment Variables
    $ set
    
  3. // for displaying all global Environment Variables
    $ env
    
Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

Verwandter Artikel - Bash Variable