logo

Bash-Variablen

Variablen sind der wesentliche Teil der Programmierung, oder wir können sagen, dass sie der Geist einer Programmiersprache sind. Variablen geben den Speicherort durch Zeichen, numerische und alphanumerische Zeichen an. Sie werden verwendet, um in einem Computerprogramm referenziert und manipuliert zu werden.

Was sind die Variablen?

Variablen sind Container, in denen Daten oder nützliche Informationen als Wert gespeichert werden. Nachfolgend finden Sie die Syntax für eine Variable:

 Variable_name =value 

Eine Variable ist eine zusammengesetzte Form aus zwei Wörtern, nämlich „vary“ und „able“, was bedeutet, dass ihr Wert geändert werden kann und sie mehrmals verwendet werden kann.

Zeichenfolge im Vergleich zu Java

Variable ist als temporärer Speicher für jede Art von Daten wie Ganzzahl, Gleitkommazahl, Zeichen usw. bekannt. Ein Variablenname kann Folgendes enthalten: Alphabete, Ziffern und Unterstriche , und sein Name kann nur mit Buchstaben und Unterstrichen beginnen.

Hinweis: Wir können keinen Variablennamen definieren, der mit einer beliebigen Ziffer beginnt.

Was sind Bash-Variablen?

Wir können keine Bash-Variablen verwenden, ohne über die richtigen Informationen zu verfügen ( Syntax, Datentypen, Typen, Funktionsweise ) darüber, also gehen wir dieses kurze Tutorial durch, um einen angemessenen Überblick über Bash-Variablen zu erhalten.

Machen Sie sich zunächst mit der Syntax vertraut.

Syntax:

 Variable_name=value 

Regelsatz zum Definieren von Bash-Variablen:

  1. Stellen Sie dem Variablennamen beim Lesen oder Drucken einer Variablen ein Dollarzeichen ($) voran.
  2. Lassen Sie das Dollarzeichen ($) weg, wenn Sie eine Variable mit einem beliebigen Wert festlegen.
  3. Ein Variablenname kann alphanumerisch sein oder mit einem Unterstrich (_) geschrieben werden.
  4. Bei einem Variablennamen muss die Groß-/Kleinschreibung beachtet werden: x und X werden als zwei verschiedene Variablen betrachtet.
  5. Der Variablenname kann je nach Wunsch entweder in GROSSBUCHSTABEN oder UNTERBUCHSTABEN oder in einer Mischung aus beiden geschrieben werden.
  6. Eine Variable kann an einer beliebigen Stelle in einem Bash-Skript oder in der Befehlszeile platziert werden, da Bash sie zur Laufzeit durch den zugewiesenen Wert ersetzt. Dies wurde möglich, weil vor der Ausführung des Befehls eine Ersetzung durchgeführt wurde.
  7. Auf beiden Seiten des Gleichheitszeichens (=) zwischen dem Variablennamen und seinem Wert dürfen keine Leerzeichen stehen. Im Folgenden finden Sie einige Beispiele dafür Ungültige Variablen mit Leerzeichen (gekennzeichnet durch Punkte ...) dazwischen, wie unten angegeben:
    var1=...Variable1
    var2...=Variable2
    var3...=...variable3
  8. Es ist nicht erforderlich, einfache oder doppelte Anführungszeichen zu verwenden, um eine Variable mit einem Einzelzeichenwert zu definieren, z var1=Variable . Um mehrere Wörter oder Zeichenfolgen als einzelnes Element in eine Variable einzugeben, verwenden Sie dann Anführungszeichen, um Ihren Inhalt in dieser Variablen einzuschließen.
    • Ein einfaches Anführungszeichen ('') hilft dabei, jedes Zeichen zu behandeln.
    • Doppelte Anführungszeichen ('') helfen bei der Ersetzung.

Datentypen

In den formalen Programmiersprachen müssen Sie den Datentyp jeder Variablen zum Zeitpunkt der Variablendeklaration definieren. Zum Beispiel:

 int year=2012 char comp_name='jtp' 

Aber im Fall von Bash müssen Sie den Datentyp einer Variablen zum Zeitpunkt der Variablendeklaration nicht definieren. Bash-Variablen sind untypisiert , was bedeutet, dass Sie einfach den Variablennamen eingeben, indem Sie seinen Wert zuweisen, und dieser Datentyp wird automatisch berücksichtigt.

Wenn Sie der Variablen also einen numerischen Wert zuweisen, funktioniert diese als Ganzzahl, und wenn Sie der Variablen einen Zeichenwert zuweisen, handelt es sich um einen String.

 year=2012 comp_name=jtp 

Lesen Sie sie mit dem Echo-Befehl, indem Sie vor ihrem Namen ein $-Zeichen zuweisen, z

echo $year
echo $name

Arten von Bash-Variablen

In einer Shell oder einem UNIX-System gibt es zwei Arten von Variablen.

  1. Systemdefinierte Variablen
  2. Benutzerdefinierte Variablen

1. Systemdefinierte Variablen: Dies sind die vordefinierten Variablen, wie sie vom LINUX-Betriebssystem selbst erstellt und verwaltet werden. Ihre Standardkonvention besteht darin, dass sie im Allgemeinen in Großbuchstaben definiert werden, d. h. UPPER_CASE. Wenn Sie also sehen, dass eine Variable in Großbuchstaben definiert ist, handelt es sich höchstwahrscheinlich um systemdefinierte Variablen.

Dies sind die folgenden systemdefinierten Variablen, wie unten angegeben:

1. BASH stellt den Shell-Namen dar.

Beispiel:

 BASH=/usr/bin/bash 

2. BASH_VERSION Gibt die Shell-Version an, die die Bash enthält.

Beispiel:

 BASH_VERSION=4.2.46(2) 

3. SPALTEN Geben Sie die Nr. an. von Spalten für unseren Bildschirm.

Beispiel:

 COLUMNS=80 

4. ZUHAUSE Gibt das Home-Verzeichnis für den Benutzer an.

Beispiel:

 HOME=/home/jatpoint 

5. LOGNAME Gibt den Protokollbenutzernamen an.

Beispiel:

 LOGNAME=javatpoint 

6. OSTYPE gibt den Typ des Betriebssystems an.

Beispiel:

 OSTYPE=linux-gnu 

7. PWD stellt das aktuelle Arbeitsverzeichnis dar.

Beispiel:

 PWD=/home/javatpoint 

8. BENUTZERNAME Gibt den Namen des aktuell angemeldeten Benutzers an.

Beispiel:

 USERNAME=javatpoint 

Um die Liste dieser Variablen in Ihrem System zu erfahren, geben Sie die Befehle ein Satz, env , Und printenv auf dem Befehlszeilenterminal wie folgt:

1. Geben Sie Folgendes ein Satz Befehl.

Ausgabe:

Bash-Variablen

2. Geben Sie Folgendes ein env Befehl

Ausgabe:

Bash-Variablen

3. Geben Sie den Befehl printenv ein

Ausgabe:

Bash-Variablen

Rufen wir diese Variablen über die Bash-Shell auf. Im Folgenden sind die angegebenen Schritte aufgeführt:

Schritt 1: Erstellen Sie ein Skript mit dem Namen Bash_sdvar und geben Sie den folgenden Code wie folgt in die Bash-Konsole ein:

 #! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS 

Schritt 2. Schauen Sie sich die unten angegebene Bash-Konsole an:

Bash-Variablen

Schritt 3. Speichern Sie das Skript und führen Sie es aus. Es wird die Ausgabe angezeigt, wie Sie in der Abbildung unten sehen können.

Ausgabe:

Bash-Variablen

2. Benutzerdefinierte Variablen: Diese Variablen werden vom Benutzer erstellt und verwaltet. Im Allgemeinen werden diese Variablentypen in LOWER_CASES definiert. Es gibt keine strenge Regel, diese Variablen in Kleinbuchstaben zu schreiben. Wir können sie auch in Großbuchstaben schreiben.

Lassen Sie uns ein Bash-Skript erstellen, um diese Variablen zu definieren. Befolgen Sie die unten angegebenen Schritte:

Schritt 1. Erstellen Sie ein Skript mit dem Namen „by“. bash_yard und geben Sie den folgenden Code in der Bash-Konsole ein:

 #! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.' 

Schritt 2. Sehen Sie sich den Code in der Bash-Konsole an.

Bash-Variablen

Schritt 3. Speichern Sie das Skript und führen Sie es aus.

Ausgabe:

Bash-Variablen

Funktionsweise von Bash-Variablen

Nachdem wir eine grundlegende Demonstration der Variablen erhalten haben, wollen wir nun herausfinden, wie sie funktionieren.

Es gibt zwei Aktionen, die wir normalerweise für eine Variable in Bash ausführen, wie unten angegeben:

  • einen Wert festlegen für eine Variable
  • den Wert lesen dafür.

Ein Variablenwert kann auf verschiedene Arten festgelegt werden. Die häufigste Methode besteht darin, den Wert direkt festzulegen. Um eine Variable zu lesen, können wir ihren Namen (mit vorangestelltem $-Zeichen) an einer beliebigen Stelle im Skript platzieren.

Bash überprüft zunächst alle Variablennamen, als ob sie im Skript vorhanden wären. Dann interpretiert es jede Zeile unseres Skripts. Nachdem jede Variable identifiziert wurde, ersetzt es einen Variablennamen durch den zugewiesenen Wert. Schließlich interpretiert/führt es diese Codezeile aus und setzt diesen Prozess für jede codierte Zeile unseres Skripts fort.

HINWEIS: Beide Arten von Variablen in Bash (die wir besprochen haben) funktionieren sowohl auf dem Terminal als auch im Bash-Skript. Lassen Sie uns anhand eines einfachen Beispiels sehen, wie sie mit Terminal und Bash arbeiten:

Beispiel: Rufen Sie einen Benutzernamen mit XYZ, seinem Standort, an dem er gerade arbeitet, und der Version von Bash Shell auf, die er für Bash Scripting verwendet.

1. Arbeiten am Terminal

Bash-Variablen

2. Arbeiten an Bash Shell

Sehen Sie sich das von Bash_Var benannte Skript unten an:

Bash-Variablen

Im 3rdZeile des Skripts , wir haben eine Variable deklariert NUTZERNAME um den Benutzernamen zu speichern XYZ als dessen Wert.

In den letzten beiden Zeilen , wir haben die beabsichtigte Nachricht gedruckt, indem wir die verwendet haben Echo Befehl.

Diese Nachricht enthält zwei Variablen und einen Befehl. Jedem von ihnen ist das Dollarzeichen ($) vorangestellt, wobei:

    NUTZERNAMEist eine benutzerdefinierte Variable zum Aufrufen des Benutzernamens,BASH_VERSIONist eine systemdefinierte Variable, die sich von der Shell selbst aufruft. Es wird verwendet, um die Version von Bash Shell zu drucken.PWDDer Befehl wird verwendet, um den aktuellen Standort des Benutzers zu drucken.

Zum besseren Verständnis erstellen Sie dieses Skript, indem Sie dem angegebenen Code folgen:

 #! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION. 

Es wird die Ausgabe angezeigt, wie Sie im folgenden Bild sehen können:

Ausgabe:

Bash-Variablen

Es gibt einige weitere Beispiele zum Üben von Variablen sowohl auf dem Terminal als auch auf der Bash-Shell. Indem Sie dem folgen Regelsatz (bereits besprochen) praktizieren Variablen wie folgt:

A. Verwenden des Befehlszeilenterminals

1. Einstellen der Variablen

Bash-Variablen

2. Lesen und Referenzieren der Variablen

Bash-Variablen

3. Ungültige Variablen

Bash-Variablen

4. Kombinieren zweier String-Variablen

Bash-Variablen

5. Strings mit Variablen verketten

Bash-Variablen

HINWEIS: Verwenden Sie keine einfachen Anführungszeichen für die Kombination zweier Variablen und auch nicht für die Verkettung von Zeichenfolgen mit Variablen. Das heißt, wenn Sie Strings verketten, indem Sie sie in einfache Anführungszeichen setzen, können sie nicht gelesen werden, wie Sie in der Abbildung unten sehen können:

Bash-Variablen

B. Bash-Skript verwenden:

Es ist ein Beispiel dafür Kombinieren der String-Variablen.

Bash-Variablen

Ausgabe:

Bash-Variablen

Kommandozeilenargumente

Befehlszeilenargumente werden verwendet, um ein Skript dynamischer zu gestalten, indem Eingaben an den Code übergeben werden. Wir übergeben diese Argumente zur Laufzeit des Skripts in der folgenden Form:

 ./script_name arg1 arg2 arg3..... 

Zwischen dem Skriptnamen und allen übergebenen Argumenten darf kein Leerzeichen stehen.

Wie verwende ich Befehlszeilenargumente?

In einer Bash-Shell werden sie unter Bezugnahme auf die folgenden Standardparameter oder die speziellen Variablen verwendet.

    0 $Gibt den Namen des aufzurufenden Skripts an.1 bis 9 US-Dollarspeichert die Namen der ersten 9 Argumente oder kann als Position der Argumente verwendet werden.$#Gibt die Gesamtzahl (Anzahl) der an das Skript übergebenen Argumente an.$*speichert alle Befehlszeilenargumente, indem es sie zusammenfügt.$@speichert die Liste der Argumente als Array.$?Gibt die Prozess-ID des aktuellen Skripts an.$$Gibt den Exit-Status des letzten Befehls oder des letzten Ausführungsprozesses an.$!Zeigt die ID des letzten Hintergrundjobs an.

Im Folgenden sind die beiden Methoden aufgeführt, die wir zum Übergeben von Befehlszeilenargumenten verwenden:

Methode 1: Verwenden der Positionsnummer

Dies ist die erste Möglichkeit, über die Standardparameter (...) auf die Argumente zuzugreifen. Das folgende Bild erklärt es:

Bash-Variablen

Ausgabe:

Bash-Variablen

Methode 2: Verwenden von Array.

Dies ist die zweite Möglichkeit, die Argumente als Array zu übergeben. Befolgen Sie den angegebenen Algorithmus, um diese Methode anzuwenden.

Schritt 1: Erstellen Sie ein Bash-Skript.

Schritt 2: Deklarieren Sie einen beliebigen Variablennamen und weisen Sie seinen Wert zu $a in folgender Form:

 variable_name=('$@') 

Wo $@ ist das Standardargument, das zum Speichern der Argumente (die wir übergeben) als Array verwendet wird.

Schritt 3: Zeigen Sie die Argumente an, indem Sie ihren Array-Index in der folgenden Form definieren:

 ${variable_name[i]} 

Schritt 4: Speichern und schließen Sie das Skript.

Schritt 5: Führen Sie das Skript aus, indem Sie die Argumente übergeben.

Sehen Sie sich das folgende Programm an:

Programm:

 #!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]} 

Auf der Bash-Konsole:

Bash-Variablen

Ausgabe:

Bash-Variablen

Befehlsersetzung

Laut der offiziellen Bash-Dokumentation

„Befehlsersetzung ermöglicht die Ausgabe eines Befehls, um den Befehl selbst zu ersetzen.“ Bash führt die Erweiterung durch, indem es den Befehl in einer Subshell-Umgebung ausführt und die Befehlsersetzung durch die Standardausgabe des Befehls ersetzt, wobei alle nachfolgenden Zeilenumbrüche gelöscht werden. Eingebettete Zeilenumbrüche werden nicht gelöscht, können aber bei der Wortaufteilung entfernt werden.'

Unter Befehlsersetzung versteht man eine Erweiterung, die Bash für uns durchführt. Es nimmt die Ausgabe des Bash-Befehls entgegen, speichert sie (im Allgemeinen) in einer Variablen und zeigt sie mit Echo zurück.

Befehlsersetzung bietet Datenflexibilität in Bezug auf Skripterstellung und Variablenzuweisung. Es ist einfach und unkompliziert, eine einzige Befehlszeilenausgabe zu erhalten. Falls die Ausgabe mehrere Zeilen umfasst, werden die neu nachgestellten Zeilen entfernt und der gesamte Inhalt der Ausgabe landet in einer einzigen Zeile.

Sehen Sie sich die Syntax zur Verwendung an:

Syntax

Die klassische Form der Ersetzung von Befehlen in einer Variablen oder der Befehlsersetzung ist die Verwendung von Backquotes („...“), wie unten angegeben:

 variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command` 

Jetzt führen wir die Befehlsersetzung durch, indem wir die Befehle in eckige Klammern setzen (vorangestellt durch das Dollarzeichen ($)). Guck mal:

 variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command) 

Lassen Sie uns also die Befehlsersetzung anhand eines Beispiels gemäß der Diskussion durchführen.

In diesem Beispiel ersetzen wir einen einzelnen Befehl ls in einer Variablen. Siehe Terminal.

Bash-Variablen

Linie 1: Ohne Befehlsersetzung wird die Ausgabe in mehrere Zeilen erweitert.

Zeile 2 und 3: Bei der Befehlsersetzung wird die Ausgabe in einer einzelnen Zeile beendet (Platzersparnis durch Entfernen neu nachgestellter Zeilen).

Im Folgenden finden Sie das Bash-Skript zum Testen der Befehlsersetzung.

Programm:

 #! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult 

Siehe die Bash-Konsole:

Bash-Variablen

Ausgabe:

Bash-Variablen