Verschachtelte variable Substitution und vordefinierte Bash -Variablen unter Linux - Teil 11
- 1442
- 185
- Levke Harnapp
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 -SkriptingHier 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.
- « Objektorientierter Ansatz der Java -Programmierung und -Kapselung - Teil 5
- Lernen Sie nützliche Tipps und Tricks von VI/VIM -Editor, um Ihre Fähigkeiten zu verbessern - Teil 1 »