Wie wird eine Variable in Linux verwaltet?

Die Befehlszeilen-Shell des Linux-Betriebssystems ist ein leistungsfähiges Werkzeug, das im Kern ein Programmiersprachen-Interpreter ist. Wie in jeder anderen Programmiersprache können Sie mit der Befehlsshell Variablen zum Speichern, Abrufen und Bearbeiten von Daten verwenden.

Variablenwerte setzen und abrufen

In der bash-Befehls-Shell, der in Linux verwendeten Standard-Shell, können Sie eine Variable mit der allgemeinen Syntax NAME = VALUE festlegen . An der Eingabeaufforderung können Sie beispielsweise Folgendes eingeben:

 x = 5 

Eine Variable namens x wird auf den numerischen Wert 5 gesetzt . Variablennamen können Groß- oder Kleinbuchstaben oder eine Kombination aus beiden sein. Sie unterscheiden zwischen Groß- und Kleinschreibung. Beim Einstellen der Variablen dürfen zwischen dem Variablennamen, dem Gleichheitszeichen und dem Wert keine Leerzeichen stehen.

Es ist nicht erforderlich, die Variable vorher zu deklarieren oder ihren Datentyp anzugeben. Bash bestimmt den Typ der Variablen basierend auf ihrem Wert.

Zum Beispiel kann unsere Variable auch einen String enthalten:

 x = Hallo 

Für eine einfache Zeichenfolge muss die Zeichenfolge nicht in Anführungszeichen gesetzt werden. Wenn die Zeichenfolge Leerzeichen enthält, müssen Sie sie in doppelte Anführungszeichen setzen:

 x = "Hallo, Welt!" 

Um den Wert Ihrer Variablen abzurufen, setzen Sie ein Dollarzeichen voran. Um beispielsweise den Wert von x mit dem Befehl echo anzuzeigen, führen Sie Folgendes aus:

 echo $ x 

Welche Ausgänge:

 Hallo Welt! 

Was hier passiert, ist, die Shell nimmt den Wert Ihrer Variablen und fügt ihn in Ihren Befehl ein. Sie können auf die Variable an beliebiger Stelle in Ihrem Befehl verweisen, selbst in einer doppelten Anführungszeichenfolge:

 echo "$ x $ x Kann mich jemand hören? Ich sagte: $ x" 
 Hallo Welt! Hallo Welt! Kann mich jemand hören? Ich sagte: Hallo Welt! 

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

 echo '$ x $ x Kann mich jemand hören? Ich sagte: $ x ' 
 $ x $ x Kann mich jemand hören? Ich sagte: $ x 

Den Wert einer Variablen als Ausgabe eines Befehls festlegen

Um den Wert Ihrer Variablen als Ausgabe eines bestimmten Befehls festzulegen, verwenden Sie das Formular:

 NAME = $ (BEFEHL) 

Wenn Ihr Benutzername beispielsweise "steven" ist, wird beim Ausführen des Befehls whoami der Wert steven zurückgegeben . Sie können dies auf eine Variable setzen:

 meinname = $ (whoami) 
 echo $ meinname 
 Steven 

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

 x = "Hallo, Welt!" 
 x = $ (Echo $ x $ x $ x) 
 echo $ x 
 Hallo Welt! Hallo Welt! Hallo Welt! 

Verwendung von Variablen in einem einfachen Skript

Mal sehen, wie wir eine Variable in einem einfachen Backup-Skript verwenden können. Angenommen, Sie möchten alles in den Verzeichnisdokumenten in Ihrem Home-Verzeichnis sichern. Das Skript archiviert alles in diesem Verzeichnis und alle darin enthaltenen Verzeichnisse in einem tar-Archiv, dessen Name das aktuelle Datum enthält. Bewahren Sie die Sicherungen in einem Verzeichnis mit dem Namen „ Sicherungen“ in Ihrem Basisverzeichnis auf (wir nehmen an, dass dieses Verzeichnis bereits vorhanden ist. Andernfalls 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 - $ (Datum +% 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 und gibt an, dass es mit / bin / bash, der ausführbaren Datei der bash-Befehls-Shell, ausgeführt werden soll. Hinweis: Die Datei ist erst ausführbar, wenn wir die Datei später ändern, diese Zeile ist jedoch in einem entsprechenden Bash-Skript erforderlich.

In der zweiten Zeile wird die Variable MYFILENAME festgelegt, die den Namen des Archivs enthält, in dem sich unser Backup befindet. Der erste Teil des Dateinamens ist unser Sicherungsverzeichnis ~ / backups .

Hinweis: Das Tilde-Zeichen ( ~ ) ist ein spezieller Verzeichnisname, der immer unser Heimatverzeichnis darstellt.)

Als nächstes haben wir den Anfang des Dateinamens Dokumente-Backup- . Dann fügen wir das aktuelle Datum mit dem Befehl date, dem Pluszeichen und der Datumsformatzeichenfolge % Y-% m-% d ein . Wenn das Datum beispielsweise der 23. Februar 2015 wäre, würde dies 2015-02-23 zurückgegeben werden .

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

Die dritte Zeile ist der Befehl, mit dem das Archiv erstellt wird. Wir verwenden den Befehl tar mit der Option -czf, wodurch ( c ) ein gzipped-Archiv ( z ) mit dem angegebenen Dateinamen ( f ) erstellt wird. Dann geben wir den Namen der Archivdatei an, indem wir auf die Variable verweisen, die wir in Zeile 2, OUTPUTFILE, erstellt haben . Schließlich sagen wir tar, was wir archivieren wollen: das Verzeichnis ~ / documents .

Speichern Sie zum Ausführen des Skripts die Textdatei in Ihrem Home-Verzeichnis (oder einem anderen Ort, den Sie bevorzugen), und geben Sie ihr einen geeigneten Namen, beispielsweise " backup-my-docs" . Es muss keine Dateinamenerweiterung angegeben werden. 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. Befindet sich das Skript beispielsweise in Ihrem Arbeitsverzeichnis, können Sie es mit folgendem Befehl ausführen:

 ./backup-my-docs 

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

 ~ / backup-my-docs