Was sind Bash-Variablen und wie können Sie sie verwenden?

Mit Bash können Sie ganze Textzeichenfolgen einzelnen Variablen zuordnen und so die Verwendung und das Schreiben von Skripten vereinfachen. Wie funktionieren sie und wie können Sie sie nutzen? Lass es uns herausfinden.

Was ist eine Bash-Variable?

Variablen sind leicht zu merkende Namen, die unterschiedliche alphanumerische Werte enthalten können. Sie sind nützlich, da sie die Anwendung derselben Funktion auf verschiedene Werte ermöglichen, ohne dass ein Skript/Code neu geschrieben werden muss. Sie erleichtern auch das Schreiben des Skripts/Codeteils, da Sie für alle Werte denselben Namen verwenden können, anstatt sich mit einzelnen Werten zu befassen.

Echtzeitvariablen

Bash ermöglicht die Verwendung von Variablen. Sie können Variablen im laufenden Betrieb erstellen und sie während Ihrer aktuellen Bash-Sitzung wiederverwenden. Sie können Ihnen bei der Verwendung von Bash auf vielfältige Weise helfen und verschwinden nach Ende der aktuellen Sitzung.

Nehmen wir zum Beispiel an, Sie besuchen eine Reihe von Websites. Sie könnten Recherchen durchführen oder Daten durchsuchen und die folgende Variable erstellen:

sitea=https://www.maketecheasier.com

Wenn Sie danach unsere Seite mit Firefox besuchen möchten, können Sie einfach Folgendes eingeben:

Viel einfacher – und besser lesbar. Die Variable $sitea bleibt der Site zugeordnet, bis Sie entweder ihren Inhalt manuell ändern oder die Bash-Sitzung beendet wird. Und natürlich können Sie weitere Variablen erstellen, z. B. siteb, sitec und sited.

Beim Einrichten neuer Variablen können Sie beliebige Namen verwenden und beliebige alphanumerische Zeichenfolgen darin speichern. Beachten Sie jedoch, dass die Groß-/Kleinschreibung standardmäßig beachtet wird. Somit wäre $sitea nicht dasselbe wie $SiteA. Beachten Sie außerdem, dass Sie beim Speichern von Zeichenfolgen mit Sonderzeichen (einschließlich Leerzeichen) Anführungszeichen verwenden sollten.

Tipp: Für diejenigen, die neu bei Bash sind, beginnen Sie mit diesen grundlegenden Bash-Befehlen.

Variablen in Skripten

Variablen in Bash sind beim Schreiben von Skripten nützlicher, da sie es Ihnen ermöglichen, ein einzelnes Skript zu schreiben, das dann verschiedene Zeichenfolgen durchlaufen oder auf benutzerdefinierte Datenteile reagieren kann. Nehmen wir an, Sie schreiben ein Skript, das jeder auf seinem Computer verwenden kann, aber jedes Mal eine personalisierte Begrüßung anzeigt. Ohne Variablen müssten Sie für jeden Benutzer eine andere Version des Skripts schreiben. Mit Variablen behalten Sie das Skript bei und ändern nur den Namen des Benutzers.

Ein solches Skript würde etwa wie folgt aussehen:

#!/bin/bash username=Ramces echo $username

Das obige Beispiel mag überflüssig erscheinen; Mit zunehmender Komplexität des Codes werden Variablen jedoch unverzichtbar. Ein Skript kann Hunderte oder Tausende Zeilen lang sein und den Namen des Benutzers an verschiedenen Stellen enthalten. Um es besser zu verstehen, betrachten Sie das folgende, etwas andere Skript:

#!/bin/bash username=Linus echo Hallo $username.  Dies ist ein einfaches Skript, das ich geschrieben habe und das Ihren Namen – also $username – oft wiederholt, als tatsächliches Beispiel für die Verwendung von Bash-Variablen.  Ich hoffe, es wird es einfacher machen zu verstehen, wie Sie Variablen verwenden, um Ihren Bash-Workflow zu verbessern, $username.  In diesem Fall wird die Variable Benutzername Ihrem Namen zugeordnet.  Immer wenn Bash darauf stößt, ersetzt es es durch $username.

Das obige Skript verwendet den als Benutzernamenvariablen definierten Namen, um den Text zu vervollständigen. Wenn Sie den Namen des tatsächlichen Benutzers verwenden, müssen Sie ihn viermal eingeben, dann dasselbe für den nächsten Benutzer und noch einmal viermal für den nächsten tun. Wieder und wieder. Indem Sie ihn einer Variablen zuweisen, müssen Sie ihn nur einmal für jeden Benutzer ändern und jede Erwähnung des Benutzernamens im Text wird aktualisiert.

Gut zu wissen: Außer Variablen können Sie auch die for-Schleife in Bash verwenden.

Permanente Bash-Variablen und Aliase

Wir haben gesehen, wie Sie Variablen vorübergehend festlegen und wie Sie sie dauerhaft in Ihre eigenen Skripte einbinden können. Sie können Variablen in Bash auch dauerhaft festlegen, indem Sie die Datei „~/.bashrc“ bearbeiten.

  1. Öffnen Sie die Datei „~/.bashrc“ in Ihrem bevorzugten Texteditor.
  1. Wir empfehlen Ihnen, mit einem Testlauf zu beginnen und nur eine einzige Variable hinzuzufügen, damit Sie wissen, wo Sie suchen müssen, wenn der Vorgang nicht funktioniert. Gehen Sie zum Ende der Datei und fügen Sie in einer neuen Zeile Ihre Variable hinzu.
  1. Speichern Sie Ihre Datei und verlassen Sie den Editor. Die Änderungen werden nicht sofort angewendet. Geben Sie Folgendes in Ihr Terminal ein, damit es wirksam wird:
  1. Nutzen Sie die neu festgelegte Variable in Ihrer Bash-Sitzung:

Sie können so viele Variablen einrichten, wie Sie möchten, und Ihre täglichen Abenteuer in Bash erheblich vereinfachen.

Für einen zusätzlichen Produktivitätsschub lohnt es sich auch, einen anderen Variablentyp einzurichten: Aliase. Im Gegensatz zu typischen Variablen, die Daten zugeordnet sind, die Sie in Befehlen verwenden können, werden Aliase anstelle tatsächlicher Befehle verwendet.

So wie Sie eine einfach zu merkende Variable verwenden können, um lange Textzeichenfolgen zu speichern, können Sie Aliase als einfache Alternative zu komplexen Befehlen verwenden. Mehr darüber erfahren Sie hier, wo wir einen ganzen 7zip-Komprimierungsbefehl in einen zweistelligen Alias ​​umwandeln.

Selbst wenn Sie eine Variable in .bashrc dauerhaft festgelegt haben, können Sie ihr, wie wir zuvor gesehen haben, vorübergehend einen anderen Wert zuweisen. Die Variable stellt den neuen Inhalt dar, bis die aktuelle Bash-Sitzung endet (nach dem Abmelden oder Neustarten) oder Sie die .bashrc-Datei erneut als Quelle verwenden.

Arrays erstellen

Während die meisten Bash-Benutzer Variablen als eine einfache Verbindung zwischen einem Datenelement und einer Beschriftung betrachten, ist es auch möglich, sie als Markierung für Arrays zu verwenden. Hierbei handelt es sich um eine Art Datenstruktur, die mehrere Werte in einem nummerierten Indexformat speichern kann. Um ein Array zu erstellen, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie ein leeres Shell-Skript:
  1. Verwenden Sie den Unterbefehl „declare“, um das Bash-Array im aktuellen Shell-Prozess zu initialisieren.
  1. Füllen Sie Ihr neues Array mit dem integrierten Bash-Zuweisungsoperator. Die folgende Codezeile erstellt beispielsweise ein Array mit fünf darin enthaltenen Elementen:
myarray=([0]=Hallo [1]=machentecheinfacher [2]=es ist [3]=an [4]=Array)

  1. Testen Sie, ob Ihr neues Array funktioniert, indem Sie den echo-Befehl verwenden, um Daten daraus abzurufen:

Sie können den Inhalt eines Arrays auch streamen, indem Sie den „*“-Operator verwenden:

Ausführen von Subshell-Variablen

Eines der größten Features von Bash ist seine Fähigkeit, Subshells zu erstellen, in denen Programme so ausgeführt werden können, als wären sie Grundfunktionen. Wenn Sie beispielsweise ls -a in ein Shell-Skript schreiben und es ausführen, wird immer noch der Inhalt des aktuellen Arbeitsverzeichnisses gedruckt.

Auch wenn dies einschränkend wirken mag, erweitert Bash dies, indem es Ihnen ermöglicht, die Ausgabe dieser Programme in Variablen zu speichern. Dadurch können Sie sie als Eingabe für andere Programme in Ihrem Skript verwenden.

  1. Um Subshell-Variablen zu verwenden, erstellen Sie zunächst ein leeres Shell-Skript:
  1. Schreiben Sie den folgenden Mustercode in Ihr neues Shell-Skript:
#!/bin/bash mysubshell=$(x) echo „Die Ausgabe der Variablen ist $mysubshell“

  1. Ersetzen Sie das „x“ durch den Befehl, den Sie ausführen und die Ausgabe speichern möchten. Im Folgenden wird beispielsweise der Inhalt der Datei world.txt abgerufen und das Wort „world“ durch „maketecheasier“ ersetzt.
mysubshell=$(sed s/world/maketecheasier/g world.txt)

  1. Testen Sie Ihre neue Subshell-Variable, indem Sie Ihr neues Skript ausführen:
chmod u+x ./subshell.sh bash ./subshell.sh

Zu Ihrer Information: Zusätzlich zu Variablen sind dies die Sonderzeichen, die Sie in Bash kennen sollten.

Teilstring-Manipulation

Neben dem Speichern und Abrufen von Daten können Sie auch den Inhalt von Variablen ändern. Bash verfügt über eine Reihe von Operatoren, die Sie am Ende jeder Variablen anhängen können, sodass Sie Ihre Skripte verfeinern können, ohne zusätzliche Programme aufzurufen.

  1. Erstellen Sie ein leeres Shell-Skript:
  1. Schreiben Sie den folgenden Standardcode in Ihr leeres Skript:
#!/bin/bash mysubstring=hello.txt.old echo „Mein Dateiname ist: ${mysubstring}“

  1. Die grundlegende Manipulation von Teilzeichenfolgen gibt es in drei Formen. Erstens akzeptiert das Zeichen „#“ ein Regex-Muster, das die Shell am Anfang der Variablen entfernt:
#!/bin/bash mysubstring=hello.txt.old echo „Mein Dateiname ist: ${mysubstring#*.}“

  1. Zweitens akzeptiert das Zeichen „%“ auch ein Regex-Muster, das die Shell am Ende der Variablen entfernt:
#!/bin/bash mysubstring=hello.txt.old echo „Mein Dateiname ist: ${mysubstring%.*}“

  • Bash bietet auch eine Möglichkeit, den Inhalt einer Variablen selektiv zu ändern. Ähnlich wie beim Programm sed können Sie das Zeichen „/“ verwenden, um eine beliebige Zeichenfolge innerhalb einer Variablen zu suchen und zu ersetzen:
#!/bin/bash mysubstring=hello.txt echo „Mein Dateiname ist: ${mysubstring/hello/maketecheasier}“

Gut zu wissen: Reguläre Ausdrücke sind ein wichtiges Werkzeug im Toolkit jedes Linux-Benutzers. Erfahren Sie anhand unseres leicht zu erlernenden Cheatsheets, wie Sie es effektiv nutzen können.

Häufig gestellte Fragen

Ist es möglich, ein Shell-Skript innerhalb einer Variablen auszuführen?

Ja, indem Sie den vollständigen Pfad des Skripts schreiben, das Sie ausführen möchten. Wenn Sie beispielsweise $(/home/ramces/.scripts/sample.sh) ausführen, wird eine Bash-Subshell erstellt und das Skript „sample.sh“ aus meinem Home-Verzeichnis ausgeführt.

Können Sie eine Variable entfernen, während ein Skript ausgeführt wird?

Ja. Sie können eine Variable aus einem laufenden Shell-Prozess entfernen, indem Sie den Unterbefehl unset gefolgt vom Namen der Variablen in Ihr Skript einfügen. Es ist wichtig zu beachten, dass durch die Ausführung dieses Befehls keine Variablen entfernt werden, die außerhalb des aktuellen Shell-Prozesses ausgeführt werden.

Können Sie eine permanente Variable in einem externen Shell-Skript verwenden?

Ja. Es ist möglich, auf den Wert einer Variablen zu verweisen, die außerhalb des aktuellen Shell-Prozesses deklariert wurde. Allerdings müssen Sie auch bei der Verwendung externer Variablen vorsichtig sein, da diese leicht vorübergehend überschrieben werden können.

Index
  1. Was ist eine Bash-Variable?
  2. Echtzeitvariablen
  3. Variablen in Skripten
  4. Permanente Bash-Variablen und Aliase
  5. Arrays erstellen
  6. Ausführen von Subshell-Variablen
  7. Teilstring-Manipulation
  8. Häufig gestellte Fragen
    1. Ist es möglich, ein Shell-Skript innerhalb einer Variablen auszuführen?
    2. Können Sie eine Variable entfernen, während ein Skript ausgeführt wird?
    3. Können Sie eine permanente Variable in einem externen Shell-Skript verwenden?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Go up