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

Bash Beginner Series #2:Variables in Bash Shell Scripting verstehen

Die Zeit ändert sich und die Variablen auch!

Sie müssen ziemlich viel mit Variablen gespielt haben, wenn Sie irgendeine Art von Programmierung durchgeführt haben.

Wenn Sie noch nie mit Variablen gearbeitet haben, können Sie sie sich als Behälter vorstellen, der eine Information speichert, die sich im Laufe der Zeit ändern kann.

Variablen sind beim Schreiben eines Bash-Skripts immer praktisch, und in diesem Tutorial lernen Sie, wie Sie Variablen in Ihren Bash-Skripts verwenden.

Variablen in Bash-Shell-Skripten verwenden

Im letzten Tutorial dieser Serie haben Sie gelernt, ein Hallo-Welt-Programm in Bash zu schreiben.

#! /bin/bash

echo 'Hello, World!'

Das war ein einfaches Hello World-Skript. Machen wir daraus ein besseres Hello World.

Lassen Sie uns dieses Skript verbessern, indem wir Shell-Variablen verwenden, damit es Benutzer mit ihren Namen begrüßt. Bearbeiten Sie Ihr hello.sh-Skript und verwenden Sie den Lesebefehl, um Eingaben vom Benutzer zu erhalten:

#! /bin/bash

echo "What's your name, stranger?"

read name

echo "Hello, $name"

Wenn Sie jetzt Ihr hello.sh-Skript ausführen; Es wird Sie nach Ihrem Namen fragen und Sie dann mit dem Namen begrüßen, den Sie ihm geben:

[email protected]:~/scripts$ ./hello.sh 
What's your name, stranger?
Elliot
Hello, Elliot

Im obigen Beispiel habe ich Elliot als meinen Namen eingegeben und dann begrüßte mich das Skript mit „Hello, Elliot“. Das ist definitiv viel besser als ein generisches „Hello, World“-Programm. Sind Sie nicht einverstanden?

Schritt-für-Schritt-Erklärung des obigen Shell-Skripts

Lassen Sie uns jetzt Zeile für Zeile das Skript hier durchgehen, um sicherzustellen, dass Sie alles verstehen.

Ich habe zuerst die Shebang-Zeile eingefügt, um ausdrücklich zu erklären, dass wir die Bash-Shell verwenden werden, um dieses Skript auszuführen.

#!/bin/bash

Als nächstes bitte ich den Benutzer, seinen Namen einzugeben:

echo "What's your name, stranger?"

Das ist nur ein einfacher echo-Befehl, um eine Zeile an das Terminal zu drucken; ziemlich selbsterklärend.

Hier ist nun die Zeile, in der die ganze Magie passiert:

read name

Hier habe ich den Lesebefehl verwendet, um die Kontrolle vom laufenden Skript auf den Benutzer zu übertragen, sodass der Benutzer einen Namen eingeben und dann den vom Benutzer eingegebenen Inhalt in der Variablen „name“ speichern kann.

Schließlich begrüßt das Skript den Benutzer mit seinem Namen:

echo “Hello, $name”

Beachten Sie hier, dass Sie dem Variablennamen ein Dollarzeichen voranstellen müssen, um den im Variablennamen gespeicherten Wert zu erhalten. Wenn Sie das Dollarzeichen weglassen, wird stattdessen „Hallo, Name“ angezeigt.

Dieses Dollarzeichen ist im Bash-Scripting als Dereferenzierungsoperator bekannt.

Ganzzahlen, Strings oder Zeichen? Wie erstelle ich verschiedene variable Datentypen in der Bash-Shell?

Lassen Sie uns ein bisschen mehr mit den Variablen herumspielen.

Sie können das Gleichheitszeichen verwenden, um den Wert einer Variablen zu erstellen und festzulegen. Beispielsweise erstellt die folgende Zeile eine Variable namens Alter und setzt ihren Wert auf 27.

age=27

Nachdem Sie die Altersvariable erstellt haben, können Sie ihren Wert beliebig ändern.

age=3

Der obige Befehl ändert den Wert der Variable Alter von 27 auf 3. Wenn nur die Zeiten zurückgehen können, höre ich dich sagen!

Variablen können verschiedene Arten von Daten enthalten; Variablen können Ganzzahlen, Zeichenketten und Zeichen speichern.

letter=’c’
color=’blue’
year=2020

Konstante Variablen in der Bash-Shell

Sie können auch eine konstante Variable erstellen, also eine Variable, deren Wert sich nie ändert! Dies kann geschehen, indem Sie Ihrem Variablennamen den readonly voranstellen Befehl:

readonly PI=3.14159

Der obige Befehl erstellt eine konstante Variable PI und setzt ihren Wert auf 3,14159. Jetzt können Sie den Wert der konstanten Variablen nicht ändern, wenn Sie es versuchen, erhalten Sie eine Fehlermeldung:

bash: PI: readonly variable

Wie Sie sehen können, können Sie den Wert einer konstanten Variablen nur lesen, aber Sie können ihren Wert niemals ändern, nachdem sie erstellt wurde.

Befehlsersetzungen

Die Fähigkeit, die Ausgabe eines Befehls in einer Variablen zu speichern, wird als Befehlssubstitution bezeichnet und ist bei weitem eines der erstaunlichsten Features von bash.

Der date-Befehl ist ein klassisches Beispiel, um die Befehlssubstitution zu demonstrieren:

TODAY=$(date)

Der obige Befehl speichert die Ausgabe des Befehlsdatums in der Variablen HEUTE. Beachten Sie, wie Sie den Datumsbefehl in ein Paar Klammern und ein Dollarzeichen (links) einschließen müssen.

Alternativ können Sie den Befehl auch in ein Paar umgekehrte Anführungszeichen setzen:

TODAY=`date`

Die Backquote-Methode ist die alte Art der Befehlsersetzung, und daher empfehle ich Ihnen dringend, sie zu vermeiden und beim modernen Ansatz zu bleiben:

variable=$(command)

Bevor Sie gehen, versuchen Sie, das Hello-World-Skript in ein intelligentes HelloWorld-Skript umzuwandeln

Da Sie gerade gelernt haben, wie man Befehle ersetzt, wäre es sinnvoll, das Hello World-Skript ein letztes Mal zu besuchen, um es zu perfektionieren!

Letztes Mal haben Sie den Benutzer gebeten, seinen Namen einzugeben, damit das Skript ihn begrüßt; Diesmal werden Sie nicht fragen, Ihr Skript weiß es bereits!

Verwenden Sie den whoami-Befehl zusammen mit der Befehlsersetzung, um denjenigen zu begrüßen, der das Skript ausführt:

#! /bin/bash           

echo "Hello, $(whoami)"

Wie Sie sehen, brauchten Sie nur zwei Zeilen! Führen Sie nun das Skript aus:

./hello.sh

Es funktioniert wie ein Zauber!

Okay, das bringt uns zum Ende dieses Tutorials. Sie können das soeben Gelernte üben, indem Sie die Aufgaben lösen, und sich auf die Lösungen beziehen, wenn Sie nicht weiterkommen oder einen Hinweis benötigen.

Bash-Kapitel-2-ÜbungsfragenProbleme und ihre Lösung zum Üben des gerade Gelernten in diesem KapitelBash-Kapitel-2-Übungsfragen-Linux-Handbuch.pdf29 KB

Ich hoffe, Ihnen hat die Arbeit mit Shell-Variablen genauso viel Spaß gemacht wie mir. Sehen Sie sich das nächste Kapitel dieser Serie an, in dem ich erläutere, wie Sie Argumente an Ihre Shell-Skripte übergeben können.


Linux
  1. Ausgabe des Befehls in Shell-Variable speichern?

  2. Funktionen in Shell-Variablen?

  3. So vergleichen Sie Zeichenfolgen in Bash Shell-Skripten

  4. Bash-Anfängerserie Nr. 9:Verwenden von Funktionen in Bash

  5. Bash-Anfängerserie Nr. 8:Schleifen in Bash

Bash-Skripting (II)

Bash-Scripting(III)

Exportbefehl in Linux erklärt

Bash-Anfängerserie Nr. 1:Erstellen Sie Ihr erstes Bash-Shell-Skript und führen Sie es aus

Bash-Anfängerserie Nr. 5:Verwenden von arithmetischen Operatoren in Bash-Skripten

Bash-Anfängerserie Nr. 6:Zeichenfolgenoperationen in Bash