In diesem Artikel werden wir uns ansehen, was die Verwendung von declare ist Befehl in Bash und wie man ihn benutzt. Eine Erklärung ist ein in Bash integrierter Befehl, der typähnliches Verhalten für Ihre Skripts bereitstellt.
Wenn Sie bereits Erfahrung in einer Programmiersprache wie Java haben , C Sie wissen vielleicht, was ein Systemtyp ist. Leider bash hat kein starkes Typensystem. Mit erklären Befehl können Sie typähnliches Verhalten erhalten und Attribute für Ihre Variablen festlegen.
$ type -a declare declare is a shell builtin
Wir werden einige der nützlichen Funktionen durchgehen erklären bietet an. Ein guter Ausgangspunkt, um sich mit declare vertraut zu machen entweder über den Hilfebefehl oder die Bash-Manpage.
$ help declare declare: declare [-aAfFgiIlnrtux] [-p] [name[=value] ...] Set variable values and attributes. Declare variables and give them attributes. If no NAMEs are given, display the attributes and values of all variables. Options: -f restrict action or display to function names and definitions -F restrict the display to function names only (plus line number and source file when debugging) -g create global variables when used in a shell function; otherwise ignored -I if creating a local variable, inherit the attributes and value of a variable with the same name at a previous scope -p display the attributes and value of each NAME ...
So deklarieren Sie ganze Zahlentypen
Um eine Variable vom Typ Integer zu deklarieren, verwenden Sie -i
Flagge. Wenn Sie sich das folgende Beispiel ansehen, sehen Sie, dass die Variable age als Integer-Typ deklariert ist. Wenn Sie versuchen, Werte eines anderen Typs (Strings ) erwarten Sie möglicherweise eine Fehlermeldung mit der Aufschrift „Nicht der richtige Typ “, aber hier wird die Fehlervariable anstelle des Auslösens als Null (0) zugewiesen ). Ja, das ist ein seltsames Verhalten und nicht das, was man erwartet.
$ declare -i num=10 $ echo $num $ num=string # Reassigning Interger type with string $ echo $num ⇒ Zero will be the output
So deklarieren Sie schreibgeschützte Variablen
Schreibgeschützt – Dies ist ein Programmierbegriff, der bedeutet, dass einer Variablen ein Wert zugewiesen wird und weder vom Programmierer noch von der Maschine geändert werden kann. Sie bleibt während des gesamten Lebenszyklus des Programms gleich.
Um Ihre Variable konstant zu machen (schreibgeschützt ) verwenden Sie das -r
Flagge.
$ declare -r num=10 $ num=11 -bash: no: readonly variable
Eine alternative Methode, um eine Variable schreibgeschützt zu machen, ist die Verwendung von readonly Schlüsselwort.
$ readonly os=ubuntu $ os=arch -bash: os: readonly variable
Umwandlung von Klein- und Großbuchstaben in Linux
Wenn Sie eine Variable der Bash zuweisen, können Sie sie mit dem -l
von Klein- auf Großbuchstaben und umgekehrt umwandeln (Kleinbuchstaben) und -u
(Großbuchstaben) Flag.
$ declare -l name="LINUX" $ declare -u name1="linux" $ echo $name $name1
Wie deklariert man ein indiziertes/assoziatives Array
Bash unterstützt zwei Arten von Arrays. Indiziert Arrays und assoziativ Reihe. Verwenden Sie zum Deklarieren von Arrays -a
(indiziertes Array) und -A
(assoziatives Array) Flag. Sie können ein indiziertes Array erstellen, ohne declare zu verwenden Befehl, aber um ein assoziatives Array zu erstellen, müssen Sie den Befehl "declare" mit -A
verwenden Flagge.
$ declare -a os_name=(Ubuntu Mint Kubuntu lubuntu Debian) $ echo ${os_name[@]} $ declare -A os_family $ os_family["Redhat"]="Fedora" $ os_family["Arch"]="Manjaro" $ os_family["Debian"]="Ubuntu" $ echo ${os_family[@]}
Variablen in Subshells exportieren
Wenn Sie etwas Erfahrung mit Bash haben, haben Sie vielleicht Leute gesehen, die den export-Befehl verwenden, um deklarierte Variablen in Subshells in ihren Skript- oder Shell-Sitzungen zu exportieren. Wir können das mit declare tun Befehl auch.
Zum Exportieren sollten Sie den -x
verwenden Flag und +x
Flag entfernt das Attribut aus dem Export.
$ declare -x name=ShellTips $ sh -c “echo $name”
Überprüfen Sie, ob Attribute definiert sind oder nicht
Wir können prüfen, ob ein Attribut (Variable ) wird mit -p
definiert oder nicht Flagge.
# Defining a variable $ a=10;b=20;c=30 # Check if a variable is defined or not $ declare -p a # single variable check declare -- a="10" $ declare -p a b c # check multiple variables declare -- a="10" declare -- b="20" declare -- c="30"
Sie sehen zwei Bindestriche --
nach dem Deklarieren des Schlüsselworts. Dies dient dazu, den Typ der Variablen anzuzeigen, z. B. declare -a (Array), deklariere -n (Nameref). Wenn nichts deklariert ist, wird nur --
angezeigt .
$ declare -a Iarray $ declare -A arrray $ declare -p Iarray Asarray declare -a Iarray declare -A Asarray
Wenn Sie versuchen, eine nicht deklarierte Variable zu finden, wird der folgende Fehler ausgegeben.
$ declare -p Iarray1 -bash: declare: Iarray1: not found
Überprüfen der Funktionsdefinition
Sie können das -F
verwenden und -f
Flag, um zu sehen, ob die Funktion deklariert ist, und Funktionsdefinition. Ich erstelle eine einfache Hallo-Welt-Funktion.
$ function hello_world(){ echo "Linux Geeks"; } $ declare -F
Um die Funktionsdefinition zu erhalten, können Sie das -f
verwenden Flagge. Wenn kein Funktionsname übergeben wird, werden alle geladenen Funktionen gedruckt und Sie können Ihre Funktionsdefinition aus der Liste abrufen.
$ declare -f hello_world $ declare -f
Das war es für diesen Artikel. Wir werden sehr bald mit einem weiteren interessanten Artikel anfangen.