Wie wird eine Variable unter Linux gepflegt?

Die Befehlszeilen-Shell des Linux-Betriebssystems ist ein leistungsstarkes Tool, das im Kern ein Programmiersprachen-Interpreter ist. Wie bei jeder anderen Programmiersprache ermöglicht Ihnen die Befehlsshell die Verwendung von Variablen zum Speichern, Abrufen und Bearbeiten von Daten.

Setzen und Abrufen von Variablenwerten

In der Bash-Befehlsshell, der Standard-Shell, die unter Linux verwendet wird, können Sie eine Variable mit der allgemeinen Syntax NAME=WERT festlegen. An der Eingabeaufforderung können Sie beispielsweise Folgendes eingeben:

x=5

Und eine Variable mit dem Namen x wird auf den numerischen Wert 5 gesetzt. Variablennamen können in Groß- oder Kleinbuchstaben oder einer Mischung aus beiden geschrieben werden, und es wird zwischen Groß- und Kleinschreibung unterschieden. Beim Setzen der Variablen dürfen zwischen Variablenname, Gleichheitszeichen und Wert keine Leerzeichen stehen.

Es ist nicht erforderlich, die Variable vorher zu deklarieren oder ihren Datentyp anzugeben. Bash bestimmt den Typ der Variablen anhand ihres Wertes.

Unsere Variable kann beispielsweise auch einen String enthalten:

x=Hello

Bei einer einfachen Zeichenfolge ist es nicht erforderlich, die Zeichenfolge in Anführungszeichen einzuschließen, aber wenn die Zeichenfolge Leerzeichen enthält, müssen Sie sie in doppelte Anführungszeichen setzen:

x="Hello, World!"

Um den Wert Ihrer Variablen abzurufen, stellen Sie ihr ein Dollarzeichen voran. Um beispielsweise den Wert von x mit dem echo-Befehl anzuzeigen, würden Sie Folgendes ausführen:

echo $x

Welche Ausgänge:

Hello, World!

Was hier passiert, ist, dass die Shell den Wert Ihrer Variablen nimmt und ihn in Ihren Befehl einfügt. Sie können überall in Ihrem Befehl auf die Variable verweisen, sogar innerhalb einer Zeichenfolge in doppelten Anführungszeichen:

echo "$x $x Can anybody hear me? I said, $x"
Hello, World! Hello, World! Can anybody hear me? I said, Hello, World!
Tipp

Variablen werden innerhalb eines Strings nur interpretiert, wenn Sie doppelte Anführungszeichen verwenden. Wenn Sie einfache Anführungszeichen verwenden, wird der Variablenname wörtlich ohne Interpretation interpretiert:

echo '$x $x Can anybody hear me? I said, $x'
$x $x Can anybody hear me? I said, $x

Festlegen des Werts einer Variablen als Ausgabe eines Befehls

Verwenden Sie das folgende Formular, um den Wert Ihrer Variablen als Ausgabe eines bestimmten Befehls festzulegen:

NAME=$(COMMAND)

Wenn Ihr Benutzername beispielsweise „steven“ lautet, gibt die Ausführung des whoami-Befehls den Wert steven zurück. Sie können dies auf eine Variable setzen:

myname=$(whoami)
echo $myname
steven

Sie können dies für jeden Befehl tun. Wenn der Befehl Argumente akzeptiert, müssen Sie den Befehl nicht in Anführungszeichen setzen. Alles innerhalb der Klammern wird als Befehl ausgeführt:

x="Hello, World!"
x=$(echo $x$x$x)
echo $x
Hello, World!Hello, World!Hello, World!

Verwenden von Variablen in einem einfachen Skript

Sehen wir uns an, wie wir eine Variable in einem einfachen Backup-Skript verwenden können. Angenommen, Sie möchten alles im Verzeichnis documents in Ihrem Home-Verzeichnis sichern. Das Skript archiviert alles in diesem Verzeichnis und allen darin enthaltenen Verzeichnissen in einem tar-Archiv, dessen Name das aktuelle Datum enthält. Lassen Sie uns die Backups in einem Verzeichnis namens backups in Ihrem Home-Verzeichnis aufbewahren (wir gehen davon aus, dass dieses Verzeichnis bereits existiert. Wenn nicht, können Sie mkdir ~/backups ausführen, um es zu erstellen).

Öffnen Sie einen Texteditor und platzieren Sie diesen Text in einer neuen Datei:

#!/bin/bash

MYFILENAME=~/backups/documents-backup-$(date +%Y-%m-%d).tar.gz

tar -czf $OUTPUTFILE ~/documents

Schauen wir uns jede Zeile dieses Skripts an. Die erste Zeile, #!/bin/bash, deklariert das Skript als ausführbare Datei, die mit /bin/bash, der ausführbaren Datei der Bash-Befehlsshell, ausgeführt werden soll.

Notiz

Die Datei ist nicht ausführbar, bis wir die Datei später ändern, aber diese Zeile ist in jedem richtigen Bash-Skript erforderlich.

Die zweite Zeile setzt die Variable MYFILENAME, die den Namen des Archivs enthält, das unser Backup enthält. Der erste Teil des Dateinamens ist unser Sicherungsverzeichnis, ~/backups.

Notiz

Das Tilde-Zeichen (~) ist ein spezieller Verzeichnisname, der immer unser Home-Verzeichnis darstellt.)

Als nächstes haben wir den Anfang des Dateinamens, documents-backup-. Dann fügen wir das aktuelle Datum mit dem Datumsbefehl, dem Pluszeichen und der Datumsformatzeichenfolge %Y-%m-%d ein. Wenn das Datum beispielsweise der 23. Februar 2015 wäre, würde das 2015-02-23 zurückgeben.

Schließlich verwenden wir die Erweiterung .tar.gz, die die richtige Dateinamenerweiterung für eine gzip-komprimierte tar-Datei ist. Wenn wir dieses Skript also am 23. Februar 2015 ausführen würden, wäre der Wert von MYFILENAME ~/backups/documents-backup-2015-02-23.tar.gz. Wenn wir es am 7. Mai 2015 ausführen würden, wäre der Wert ~/backups/documents-backup-2015-05-07.tar.gz.

Die dritte Zeile ist der Befehl, der das Archiv erstellt. Wir verwenden den tar-Befehl mit der Option -czf, der (c) ein gzip-Archiv (z) unter Verwendung des angegebenen Dateinamens (f) erstellt. Dann geben wir den Namen der Archivdatei an, indem wir uns auf die Variable beziehen, die wir in Zeile 2, OUTPUTFILE, erstellt haben. Zuletzt teilen wir tar mit, was wir archivieren wollen: das Verzeichnis ~/documents.

Um das Skript auszuführen, speichern Sie die Textdatei in Ihrem Home-Verzeichnis (oder an einem anderen Ort Ihrer Wahl) und geben Sie ihr einen geeigneten Namen, z. B. backup-my-docs. Es ist nicht erforderlich, ihm eine Dateinamenerweiterung zu geben. Beenden Sie den Texteditor und machen Sie die Datei mit dem Befehl chmod +x ausführbar, zum Beispiel:

chmod +x ~/backup-my-docs

Jetzt können Sie das Skript ausführen. Wenn sich das Skript beispielsweise in Ihrem Arbeitsverzeichnis befindet, können Sie es ausführen mit:

./backup-my-docs

Oder, wenn es sich in Ihrem Home-Verzeichnis befindet, können Sie es mit dem Befehl von jedem beliebigen Verzeichnis aus ausführen:

~/backup-my-docs
Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here