Einführung
Eine Variable in Bash wird erstellt, indem ihrer Referenz ein Wert zugewiesen wird. Obwohl das eingebaute declare
-Anweisung muss nicht verwendet werden, um eine Variable explizit in Bash zu deklarieren, der Befehl wird oft für fortgeschrittenere Variablenverwaltungsaufgaben verwendet.
Dieses Tutorial zeigt Ihnen, wie Sie mit Variablen und ihren Attributen arbeiten, indem Sie die Bash declare
verwenden Befehl.
Voraussetzungen
- Zugriff auf das Terminal/die Befehlszeile.
- Sudo-Benutzerrechte.
Bash-Declare-Syntax
Die Syntax für die Verwendung der Bash declare
Befehl ist:
declare [options] [variable-name]="[value]"
Bash deklariert Optionen
Die declare
Der Befehl funktioniert mit den folgenden allgemeinen Optionen:
Option | Beschreibung |
---|---|
-f | Deklarieren Sie eine Bash-Funktion, keine Variable. |
-F | Den Namen und die Attribute der Funktion anzeigen. |
-g | Wenden Sie den globalen Gültigkeitsbereich auf alle Variablenoperationen innerhalb einer Shell-Funktion an. Die Option funktioniert nicht außerhalb von Shell-Funktionen. |
-p | Optionen und Attribute von Variablen anzeigen. |
Die Optionen in der folgenden Tabelle werden verwendet, um ein Attribut auf eine Variable festzulegen.
Option | Beschreibung |
---|---|
-a | Die Variable ist ein indiziertes Array. Sie können dieses Attribut nicht deaktivieren. |
-A | Die Variable ist ein assoziatives Array. Sie können dieses Attribut nicht deaktivieren. |
-i | Der Wert der Variablen ist eine ganze Zahl. Deaktivieren Sie das Attribut mit +i . |
-l | Der Variablenname besteht nur aus Kleinbuchstaben. Deaktivieren Sie das Attribut mit +l . |
-n | Die Variable wird zur Namensreferenz für eine andere Variable. Deaktivieren Sie das Attribut mit +n . |
-r | Die Variable ist schreibgeschützt. Deaktivieren Sie das Attribut mit +r . |
-t | Bei Verwendung mit Funktionen erbt das Element DEBUG und RETURN Traps von der Eltern-Shell. Deaktivieren Sie das Attribut mit +t . |
-u | Der Variablenname besteht nur aus Großbuchstaben. Deaktivieren Sie das Attribut mit +u . |
-x | Exportieren Sie die Variable in untergeordnete Prozesse, ähnlich wie beim Exportbefehl. Deaktivieren Sie das Attribut mit +x . |
Wie man eine Variable in Bash deklariert
Das folgende Beispiel zeigt, wie eine Variable mit dem Namen testvar
deklariert wird und weisen Sie ihm den Wert 100
zu .
declare testvar="100"
Bei erfolgreicher Ausführung erzeugt der Befehl keine Ausgabe. Verwenden Sie das -p
Option, um zu überprüfen, ob die Variable erfolgreich erstellt wurde. Da der Befehl alle derzeit auf dem System vorhandenen Variablen auflistet, schränken Sie ihn mit dem grep-Befehl ein.
declare -p | grep testvar
Der doppelte Bindestrich (--
) Zeichen vor dem Variablennamen bedeutet, dass die Variable keine Argumente hat.
Verwenden Sie die folgende Syntax, um ein Attribut auf eine Variable festzulegen. Das Beispiel setzt -x
-Attribut zu testvar
Variable.
declare -x testvar
Suchen Sie erneut nach der Variable und bestätigen Sie, dass das Attribut gesetzt wurde.
declare -p | grep testvar
Um das Attribut zu entfernen, stellen Sie ihm ein Plus voran (+
) Schild.
declare +x testvar
Ganzzahlen
Das -i
Die Option begrenzt die Variable nur auf ganzzahlige Werte.
declare -i testvar
Um dies zu testen, versuchen Sie, den Wert der Variablen in eine Zeichenkette zu ändern.
declare testvar="example"
Verwenden Sie den echo-Befehl, um den Wert der Variablen zu sehen.
echo $testvar
Die Ausgabe zeigt den Wert Null (0
):
Der Wert einer Variablen kann auch das Ergebnis einer mathematischen Operation sein.
declare testvar="3*3"
Im obigen Beispiel ist die testvar
Variable wurde der Wert 3*3
gegeben . Überprüfen des Variablenwerts mit echo
zeigt das Ergebnis.
echo $testvar
Das Ergebnis der mathematischen Operation muss keine ganze Zahl sein.
declare testvar="10/3"
Wenn die Variable jedoch den -i
Attribut gesetzt, wird das Ergebnis auf die nächste ganze Zahl gerundet.
echo $testvar
Der Versuch, einen nicht ganzzahligen Wert für eine Variable zu deklarieren, während -i
Option gesetzt ist, führt zu einem Fehler.
declare testvar="1.5"
Fälle
Verwenden Sie das -u
-Attribut, um alle Buchstaben in Großbuchstaben umzuwandeln. Das folgende Beispiel deklariert die testvar
-Variable und weist ihr den Wert example
zu .
declare -u testvar="example"
Da jedoch -u
-Attribut festgelegt wurde, zeigt die Überprüfung des Werts der Variablen, dass sie den Wert EXAMPLE
hat .
echo $testvar
Das -l
-Attribut hat den gegenteiligen Effekt.
declare -l testvar="EXAMPLE"
Wenn Sie es setzen, werden Großbuchstaben in Kleinbuchstaben umgewandelt.
echo $testvar
Nur Lesen
Setzen Sie -r
Attribut zu den Variablen, die Sie vor versehentlicher Änderung schützen möchten.
declare -r testvar="100"
Der Versuch, den Wert der schreibgeschützten Variablen zu ändern, führt zu einem Fehler.
declare testvar="50"
Arrays
Bash-Variablen können mehr als einen Wert haben. Um einer einzelnen Bash-Variablen mehrere Werte zuzuweisen, konvertieren Sie sie in ein Array, indem Sie Folgendes eingeben:
declare -a testvar
Wenn die Variable vor der Konvertierung einen Wert hatte, ist dieser Wert jetzt das erste Element des Arrays mit der Indexnummer 0
. Geben Sie Folgendes ein, um den Wert des ersten Elements im Variablenarray zu überprüfen:
echo ${testvar[0]}
Deklarieren Sie weitere Elemente des Arrays, indem Sie die Indexnummer des Elements angeben.
declare testvar[1]="200"
Listen Sie alle Elemente des Arrays auf, indem Sie Folgendes eingeben:
echo ${testvar[*]}