Website-Suche

„Linux-Variablen“ in Shell-Scripting verstehen und schreiben – Teil 10


Die Linux-Shell-Skriptsprache war schon immer ein heißes Thema und wird es auch in Zukunft sein. Die Shell-Skriptsprache ist magisch und es ist so einfach, ein Programm in einer Skriptsprache zu erstellen wie in jeder anderen Sprache. Es bedarf jedoch fundierter Kenntnisse darüber, was wir tun und welches Ergebnis wir erwarten.

Alle Shell-Scripting-Artikel, die wir für unsere Leser geschrieben haben, werden sehr geschätzt, einschließlich des letzten Artikels „Ein Einblick in Linux-Variablen“. Wir erweitern den letzten Artikel auf ein neues Level.

Variable Attribute

Jede Variable in der Linux-Umgebung verfügt über bestimmte Optionen, die als „Attribute“ bezeichnet werden. Diese Optionen oder Attribute können bei Bedarf je nach Situation mit dem Befehl „declare“ Ein und Aus aktiviert werden.

Ein Beispiel für ein Variablenattribut ist die Verwendung eines Schalters, sagen wir „-i“, der das Ganzzahlattribut für die entsprechende Variable aktiviert. Selbst wenn ein nicht numerischer Wert an den Schalter „-i“ übergeben wird, wird keine Fehlermeldung ausgegeben und „0“ als Ganzzahlinterpretation ausgegeben. Hier wird es anhand des folgenden Beispiels deutlicher.

Deklarieren Sie eine Variable Integer, bill=121

avi@localhost:~$ declare -i bill=121

Drucken Sie den Wert der variablen Rechnung aus.

avi@localhost:~$ printf "%d\n" "$bill" 

121

Der Variablenwert sei eine Zeichenfolge. Die variable Rechnung ist bereits deklariert und muss nicht noch einmal deklariert werden. Ändern Sie einfach den Wert der Variablen als.

avi@localhost:~$ bill=tecmint

Drucken Sie nun erneut den Wert der variablen Rechnung aus.

avi@localhost:~$ printf "%d\n" "$bill" 

0

Beachten Sie „0“ anstelle der Fehlermeldung.

Die Frage ist nun, wie man die Attribute bereits deklarierter Variablen kennt.
avi@localhost:~$ declare -p bill 

declare -i bill="121"

Hier hilft ein Schalter -p (steht für print).

Was muss ich noch einmal tun, um die Attribute einer Variablen auszuschalten?

Um die Attribute einer Variablen aus zu schalten, müssen wir lediglich ein + (Plus)-Zeichen direkt vor dem Schalter setzen. Hier wird es anhand des folgenden Beispiels deutlicher.

Schalten Sie das Ganzzahlattribut für die obige Variable aus.

avi@localhost:~$ declare +i bill

Überprüfen Sie den Wert der Variablen.

avi@localhost:~$ printf "%d\n" "$bill" 

bash: printf: bill: invalid number
0

Drucken Sie nun den Wert der Variablen mithilfe der Schalterzeichenfolge aus.

avi@localhost:~$ printf "%s\n" "$bill" 

tecmint

Hier im obigen Beispiel konnte Bash einen nicht numerischen Wert nicht als Fehler beurteilen, printf interpretiert jedoch, was eine Zahl sein könnte und was nicht.

Schreibgeschützte Variablen

Sie haben vielleicht schon von Read Only Memory (ROM) gehört, aber was ist eine Read-Only-Variable? Hat es Ähnlichkeit mit ROM?

Nun, schreibgeschützte Variablen wie der schreibgeschützte Speicher sind etwas, dessen Wert nach der Zuweisung nicht mehr geändert werden kann. Daher wird es als schreibgeschützt bezeichnet. Sie können für diese Variable keinen neuen Wert schreiben, bearbeiten oder ändern. Hier ist eine Veranschaulichung anhand eines Beispiels.

Geben Sie einen schreibgeschützten (-r) Variablennamen ein, dessen Wert „linux-console.net“ ist.

avi@localhost:~$ declare -r name="linux-console.net"

Drucken Sie den Wert der oben deklarierten Variablen aus.

avi@localhost:~$ printf "%s\n" "$name" 

linux-console.net

Versuchen Sie, den Wert der Variablen zu ändern.

avi@localhost:~$ declare -r name="Avishek" 

bash: declare: name: readonly variable

Wie oben erläutert, können die Attribute einer schreibgeschützten Variablen mit dem Zeichen „+“ geändert werden.

Exportieren von Variablen unter Linux

Alle in einem Shell-Skript deklarierten Shell-Variablen sind verfügbar, bis das Skript ausgeführt wird. Außerhalb des Skripts existiert die Variable aus dem Skript nicht. Der Vorgang, Variablen außerhalb des Skripts verfügbar zu machen, wird als Exportieren von Variablen bezeichnet.

Eine Variable kann mit dem Schalter declare -x (export) außerhalb der Shell exportiert werden, der der Shell bestätigt, was Sie exportieren wollten. Ein Declare-Export-Schalter kann als verwendet werden.

avi@localhost:~$ declare -x variable=”Constant_Value”

Alle während der Ausführung des Skripts an der Variablen vorgenommenen Änderungen gehen verloren, wenn die Variable außerhalb des Skripts exportiert wird. Das Exportieren von Variablen ist beim Shell-Scripting sehr wichtig.

Wir möchten eine Variable haben, die schreibgeschützt und außerhalb des Skripts verfügbar sein soll. Dazu müssen wir die Schalter -r und -x gleichzeitig verwenden.

avi@localhost:~$ declare -rx variable=”Constant_Value”

Umgebungsvariablen

Die Variablen, die zwischen dem Programm und dem Programm, das sie ausführt, gemeinsam genutzt werden. Umgebungsvariablen können exportiert werden, die Attribute können ihr jedoch nicht zugewiesen werden.

Die obige Theorie praktisch verstehen. Hier haben wir zwei Skripte 0.sh und 1.sh.

0.sh
#!/bin/bash 
declare -rx name=Tecmint 
bash 0.sh 
exit 0

Und das zweite Drehbuch ist.

1.sh
#!/bin/bash 
printf "%s\n" "$name" 
name=linux-console.net 
printf "%s\n" "$name"
exit 0

Hier geht es darum, dass eine Variable (Name) als schreibgeschützt deklariert und exportiert wird und unmittelbar danach das zweite Skript aufgerufen wird.

Das zweite Skript hat gerade die Variable aus dem ersten Skript gedruckt, das in der ersten printf-Anweisung exportiert wurde. In der zweiten printf-Anweisung wird der neue Wert angezeigt, der der Variablen „name“ zugewiesen wurde.

Sie müssen sich keine Sorgen machen, dass die Variable schreibgeschützt war. Wie kann sie neu zugewiesen werden? Erinnern Sie sich nicht daran: „Alle Änderungen, die an der Variablen vorgenommen werden, während das Skript ausgeführt wird, gehen verloren, wenn die Variable außerhalb des Skripts exportiert wird.“ ”

Verweise

Der Befehl declare ermöglicht alle unten aufgeführten Schalter zusammen mit ihrer Kombination.

  1. -a: Deklariert ein Array.
  2. -f: Anzeigefunktion und Definition.
  3. -F: Funktionsname anzeigen.
  4. -r: Variable als schreibgeschützt deklarieren.
  5. -x: Variable als exportierbar deklarieren.
  6. -I: Variable als Ganzzahl deklarieren.

Das ist alles für den Moment. Im nächsten Artikel werden wir Möglichkeiten zum Ersetzen von Variablen mit dem Befehl „eval“ und den bereits in Bash definierten Variablen besprechen, bevor wir dieses Thema schließen. Ich hoffe, Ihnen gefällt Ihre Reise in die Tiefe der Skripterstellung. Bleiben Sie bis dahin auf dem Laufenden und bleiben Sie mit linux-console.net in Verbindung.