Verschachtelte variable Substitution und vordefinierte Bash -Variablen unter Linux - Teil 11

Verschachtelte variable Substitution und vordefinierte Bash -Variablen unter Linux - Teil 11

Die letzten beiden Artikel über Bash Shell, in dem wir die Variablen im Detail diskutierten, wurden unter unseren Lesern sehr geschätzt. Wir as Tecmint-Team sind sehr daran interessiert, Ihnen die neuesten, aktuellen und relevanten Themen zu bieten, die detailliert behandelt werden. Darüber hinaus versuchen wir immer, große Perspektiven der entsprechenden Themen zu berühren.

Verschachtelte Variablen im Shell -Skripting

Hier ist der letzte Artikel über Linux -Variablen, in dem wir Variablen Substitution und Variablen sehen werden, die in Shell definiert sind, bevor wir dieses Thema schließen.

Bash führt eine variable Substitution durch, bevor der Befehl wirklich ausgeführt wird. Die Linux -Bash -Shell sucht vor dem Ausführen des Befehls nach dem gesamten "$" -Schild und ersetzen Sie es durch den Wert der Variablen. Der Prozess der bash -variablen Substitution wird nur einmal durchgeführt. Was ist, wenn wir Variablen verschachtelt haben??

Notiz: Mit verschachtelten Variablen meinen wir, die in Variablen deklarierte Variable. Sehen wir uns das obige Szenario im folgenden Beispiel an.

Deklarieren Sie eine Variable, die schreibgeschrieben und ausführbar ist wie unten.

[E -Mail geschützt]: ~ $ Declare -rx linux_best_website = "www.Tecmint.com "

Überprüfen Sie den Wert der gespeicherten Variablen.

[E -Mail geschützt]: ~ $ printf "%s" "$ lINUX_BEST_WEBSITE" www.Tecmint.com

Deklarieren Sie nun eine andere Variable, die erneut schreibgeschützt und ausführbar ist.

[E -Mail geschützt]: ~ $ Declare -rx linux_website = "linux_best_website"

Jetzt ist die Situation, wir haben zwei Variablen definiert.

'Linux_best_website', dessen Wert "www" ist.Tecmint.com ”
und 'linux_website', dessen Wert "Linux_Best_Website" ist

Was wäre das Ergebnis, wenn wir den folgenden Ein-Line-Befehl ausführen??

[E -Mail geschützt]: ~ $ printf "%s" "$ linux_website"

Es sollte zuerst die Variable ersetzen '$ Linux_Website', mit Wert “LINUX_BEST_WEBSITE" und dann "$ LINUX_BEST_WEBSITE"Ist wieder eine Variable, deren Wert der" ist "www.Tecmint.com”. Die endgültige Ausgabe des Ausführens des folgenden Befehls sollte also sein.

[E -Mail geschützt]: ~ $ printf "%s" "$ linux_website" www.Tecmint.com

Aber leider ist dies nicht die Situation, die Ausgabe, die wir erhalten, ist LINUX_BEST_WEBSITE.

Grund? Jawohl! Ersetzen Sie den Wert der Variablen nur einmal ersetzen. Was ist mit komplexen Skripten und Programmen, in denen wir häufig Variablen ersetzen und die Variable mehr als einmal ersetzen müssen??

Hier kommt der Befehl 'bewerten'Das führt zusätzliche Arbeiten variabler Substitution mehr als einmal in einem Skript aus. Hier ist ein Beispiel, um das Ganze so klar wie Glas zu machen.

Eine Variable deklarieren X, der Wert davon ist 10.

[E -Mail geschützt]: ~/Desktop $ deklarieren x = 10

Überprüfen Sie den Wert der Variablen X, Wir haben gerade definiert.

[E -Mail geschützt]: ~/Desktop $ echo $ yx x10

Eine Variable deklarieren y, der Wert davon ist X.

[E -Mail geschützt]: ~/Desktop $ deklarieren y = x

Überprüfen Sie den Wert der Variablen y, Wir haben gerade definiert.

[E -Mail geschützt]: ~/Desktop $ echo $ y x

Hier ist das Problem von Verprügeln einmal variable Substitution, die keine zusätzliche Runde variabler Substitution durchführt. Wir benutzen 'bewerten'Befehl, dies zu beheben.

[E -Mail geschützt]: ~/Desktop $ eval y = $ x

Überprüfen Sie nun den Wert der Variablen 'y''.

[E -Mail geschützt]: ~/Desktop $ echo $ y 10

Hurra! Das Problem wurde behoben und 'bewerten'Kommando gewann das Rennen :)

Nicht zu erwähnen, 'bewerten'Befehl ist in großen Skriptprogrammen sehr hilfreich und ein sehr praktisches Werkzeug.

Der letzte, aber nicht der geringste Teil dieses Beitrags sind bash -vordefinierte Variablen. NEIN! Lassen Sie sich nicht in Panik sehen, wenn Sie diese Liste sehen. Sie müssen sich nie an die gesamte Liste erinnern, bevor Sie anfangen, Skripte außer einigen zu schreiben. Als Teil des Lernprozesses präsentieren wir die vordefinierte Variablenliste mit bash vordefinierten Variablen.

NEIN. Bash -Variable ERGEBNIS
1 auto_resume Vervollständigungsbefehlsbefehlsabschluss für die gestoppten Jobs.
2 Verprügeln Pfad der Hülle.
3 Bash_env Zeigt den Namen der Profildatei an
4 Bash_version Zeigt die Version von Bash an
5 Bash_versinfo Zeigt detaillierte Versionsinformationen an.
6 Bash_versinfo [0] Die Hauptversionsnummer (die Veröffentlichung).
7 Bash_versinfo [1] Die Minor -Versionsnummer (die Version).
8 Bash_versinfo [2] Die Patch -Ebene.
9 Bash_versinfo [3] Die Build -Version.
10 Bash_versinfo [4] Der Freigabestatus (z. B. Beta1).
11 Bash_versinfo [5] Der Wert von MachType .
12 CDPath Liste der durch Dickdarm getrennten Verzeichnisse.
13 SÄULEN Anzahl der Zeichen pro Zeile für die Standardausgabe.
14 EUID Benutzer -ID des aktuellen Benutzer.
15 Fedit Der Standardtexteditor für den FC -Befehl.
16 Funktionsname Der Name des Spaßes
17 Gruppen Gruppen, von denen der Benutzer Mitglied ist.
18 Histfile Die Datei, die den Befehlsverlauf enthält.
19 HEIM Der Name Ihres Heimverzeichnisses.
20 LINIEN Anzahl der horizontalen Leitungen für die Standardausgabe.
21 Post Name einer Datei, um nach eingehenden Mails zu suchen
22 Ostype Name des Betriebssystems.
23 Oldpwd Das vorherige Arbeitsverzeichnis
24 PWD Das aktuelle Arbeitsverzeichnis
25 WILLKÜRLICH Druckt eine Zufallszahl
26 HÜLSE Die bevorzugte Hülle zu verwenden
27 ZEITFORMAT Das Format für den Zeitbefehl.
28 Uid Die ID des aktuellen Benutzer

Es gibt eine große Liste der vordefinierten Bash -Variablen. Wir haben versucht, eine Liste der am häufigsten verwendeten zu erstellen.

Das ist alles fürs Erste. Ich werde wieder mit einem anderen interessanten Artikel hier sein. Bis dahin bleiben Sie dran und verbunden mit Tecmint. Vergessen Sie nicht, uns Ihr wertvolles Feedback im Kommentarbereich unten zu geben.