Ein Einblick in Linux -Variablen in Shell -Skriptsprache - Teil 9

Ein Einblick in Linux -Variablen in Shell -Skriptsprache - Teil 9

Wir haben bereits eine Reihe von Artikeln über geschrieben Linux -Shell -Skripte Was warm war, begrüßte diese Zeit und es war noch jetzt sehr relevant. Hier ist der Link zur Sammlung von Artikeln zum Shell -Skripting.

  1. Lernen Sie Linux -Shell -Skripte

Hier in diesem Artikel werden wir die sehen Variablen, seine Ausführung und seine Implementierung im Shell -Skript.

Linux -Variablen Shell Scripting

Speichern eines Ausgangs

Die Ausgabe eines Befehls kann zu Standardausgabe oder einer Datei umgeleitet werden und auch in einer Variablen gespeichert werden. Wenn die Ausgabe eines Befehls so groß ist, dass er nicht zum Bildschirm passt. Ein Vorteil des Einsparungsausgangs auf Variable ist eine schnellere Prüfungsgeschwindigkeit. Variablen werden in den Speicher gespeichert und sind daher im Vergleich zum Abrufen aus der Datei in der Regel schnell.

Variablen in der Skriptsprache

Variablen sind eine wichtige Komponente, die beim Shell -Skripting verwendet wird und mit Bash -Befehl deklariert werdenErklären”. Eine Variable zu deklarieren sagen 'eben', Wir müssen den folgenden Befehl ausführen.

$ deklarle Level

Notiz: Wir müssen verwenden “Typecast”, Eine eingebaute Erklärung zur Korn -Shell -Kompatibilität. Das "Declare" ist fortgeschrittener und enthält alle Funktionen, daher wird empfohlen, wenn Sie Bash verwenden.

Regeln
  1. Ein variabler Name muss die Verwendung von Variablen im Skript rechtfertigen.
  2. Die Verwendung des gleichen variablen Namens im gesamten Programm wird stark empfohlen.
  3. Der Variablenname kann sowohl Großbuchstaben als auch Kleinbuchstaben sein, aber durch Konventionshellbefehle befinden sich in Kleinbuchstaben. Daher sollten wir den Variablennamen in Großbuchstaben verwenden, um Verwirrung zu entfernen. e.G., Total_Billed_amount, Sell_report, Order_receipt usw.

Implementierung

Einer Variablen kann ein Wert unter Verwendung eines gleichen Vorzeichens zugewiesen werden (=). Um einer Variablen eine leere Zeichenfolge zuzuweisen, dürfen wir keinen Wert nach dem gleichen Vorzeichen angeben.

$ Level =

Überprüfen Sie den Wert, der in der Variablen "Ebene" gespeichert ist.

$ printf "%i" $ Level

printf, der Befehl das meiste von 'C'Programmierer sind sich bewusst, druckt Daten aus. %ich - Repräsentiert Ganzzahl. Wir können es durch ersetzen %C für Charakter oder %C für Zeichenfolge, bei Bedarf.

$ Level: Beachten Sie die '$"Was als Wertsubstituter für die Variable funktioniert"EBEN'.

Probenausgabe
$ printf "%i" $ Level 0

Weisen Sie der Variablen einen Wert zu.

$ Level = 0

Überprüfen Sie die gespeicherten Daten in der Variablen.

$ printf "%i" $ Level 0

NOTIZ: Es ist interessant festzustellen, dass in beiden Fällen, als wir den Wert nicht der Variablen zugewiesen haben und wenn wir den Wert zugewiesen haben. '0"zur Variablen"EBEN'Ausgänge 0. Obwohl die Ausgabe in beiden Fällen gleich ist, behandelt Shell Skript beide die Variablenerklärung unterschiedlich.

Weisen Sie der Variablen einen neuen Wert zu.

$ Level = 121

Überprüfen Sie die gespeicherten Daten in der Variablen.

$ printf "%i" $ Level 121

Eine Variable nicht festlegen

Erklären ist ein Bash -Befehl und erstellt Variable nur bei Ausführung. Die so erstellte Variable bleibt im Speicher, bis das Skript stoppt oder die Variable zerstört wird.

$ unbegründet

Vordefinierte Variablen in Bash

Bash hat vorbei 50 Variablen vordefiniert. Einige dieser Variablen haben eine besondere Bedeutung, die dem Bash e verbunden ist.G., eine Variable WILLKÜRLICH gibt eine Zufallszahl aus. Wenn es nicht festgelegt und dann erneut definiert ist, geht der ursprüngliche variable Wert für immer verloren. Daher wird empfohlen, keine systemdefinierte Variable zu verwenden.

Hier ist eine Liste einiger nützlicher Bash -Variablen.

  1. Bash-der volle Pfadname von Bash.
  2. BASH_ENV-IN Ein Shell-Skript, den Namen der Profildatei, die vor dem Start des Skripts ausgeführt wurde.
  3. Bash_version-die Version von Bash (zum Beispiel 2.04.0 (1) -Release).
  4. Spalten-die Anzahl der Zeichen pro Zeile auf Ihrer Anzeige (z. B. 80).
  5. Hostname-der Name des Computers. Unter einigen Versionen von Linux kann dies der Maschinenname sein. Bei anderen kann es sich um einen voll qualifizierten Domainnamen handeln.
  6. Hosttyp-Computertyp.
  7. Home-der Name Ihres Heimverzeichnisses.
  8. Ostype-der Name des Betriebssystems.
  9. Path-Colon-durch-getrennte Liste der Suchpfade, um einen Befehl zum Ausführen zu finden.
  10. PPID-die Prozess-ID des übergeordneten Prozesss der Shell.
  11. Eingabeaufforderung_Command-Command, vor der Einstellung der PS1 Primary Eingabeaufforderung auszuführen.
  12. PWD-The Current Working Directory (wie der Befehl CD festgelegt).
  13. Zufällige Returns eine Zufallszahl zwischen 0 und 32767 jedes Mal, wenn sie verwiesen wird.
  14. Shell-die bevorzugte Schale; Für Programme, die eine Shell für Sie beginnen.
  15. Terminalemulationstyp (z. B. Konsole).

Die Regel der Wortaufteilung.

$ Level = 0 $ printf "%i" $ Level 0 und $ Level = "0" $ printf "%i" $ Level 0

In beiden Fällen bleibt die Ausgabe gleich. Was ist der Unterschied im Ergebnis bei der Verwendung von Zitat?

Überprüfen wir dasselbe mit unterschiedlichen variablen Daten.

$ Level = 0; 1; 2; 3 ; 4; 5 Bash: 1: Befehl nicht gefunden Bash: 2: Befehl nicht gefunden Bash: 3: Befehl nicht gefunden Bash: 4: Befehl nicht gefunden Bash: 5: Befehl nicht gefunden
$ printf "%i" $ Level 0

Ganz zu schweigen davon, dass die Ausgabe nicht korrekt ist. Bash nimmt den Raum nach '0"Als Beendigung und damit wird der Wert der Variablen als" festgelegt "0''. Jetzt versuchen wir, Angebot für Variablen wie unten zu verwenden.

$ Level = ”0; 1; 2; 3 ; 4; 5 "$ printf"%s "$ Level 0; 1; 2; 3; 4; 5

Trotzdem ist das Ergebnis nicht korrekt. Bash nahm die Variablenwerte und entfernte alle zwischen ihnen. Somit printf Ich habe 0,1,2,3,4,5 als unterschiedliche Werte nicht interpretiert. Also, was ist die Lösung??

printf "%s" "$ Level" 0; 1; 2; 3 ; 4; 5

Ja! Die variable Substitution unter Anführungszeichen zu setzen ist die Lösung. Zitate gruppiert Charaktere in Shell und interpretieren die Sonderzeichen auf sinnvolle Weise.

Zitate können hintereinander verwendet werden und es ist eine gute Idee, variable Substitutionen mit Zitaten beizulegen. Darüber hinaus kann es verwendet werden, um den Gesamttext von Zitaten zu trennen. Hier ist ein Beispiel.

$ Level = 5 $ flag_message = "Ich habe Level" "$ Level" "gelöscht". Ich verdiene Wertschätzung."$ printf"%s "" $ flag_message "
„Ich habe Level5 geklärt. Ich verdiene Wertschätzung.”

Die Trennung von Teilen des zitierten Textes mit Raum führt zu demselben Problem wie oben erläutert. Die Bash wird den weißen Raum als Kündigung behandeln. Ein weiterer Weg zur variablen Substitution ist.

$ Level = 5 $ flag_message = "Ich habe Level $ Level gelöscht. Ich verdiene Wertschätzung."$ printf"%s "" $ flag_message "" Ich habe Level 5 gelöscht. Ich verdiene Wertschätzung.”

Einzelne Zitate beschränken die Bash von Drucken von Sonderzeichen.

$ printf "%s" '$ flag_message' "$ flag_message"

Der Backslash (/)

Backslash funktioniert wie ein einzelnes Zitat für einen Charakter. Haben Sie gedacht, wie werden Sie drucken ()?

$ printf "%c" "\" ""

Wenn %Q gruppiert mit printf, Bietet Backslash nach jedem Wort, um einen Wortabstand zu gewährleisten.

$ Level = 5 $ flag_message = ""Ich habe Level $ Level gelöscht. Ich verdiene Wertschätzung.""$ printf""%q """" $ flag_message """" i \ Have \ Cleared \ Level \ 5.Ich habe die Wertschätzung verdienen.”

Das ist alles fürs Erste. Wir versuchen immer, unseren Lesern Artikel zur Verfügung zu stellen, die von Zeit zu Zeit für sie nützlich sind. Der oben abgedeckte Artikel ist riesig, daher wird der Rest der Themen mit Beispielen im nächsten Artikel erstellt, der ""Attribute der Variablen"", ""variabler Exportieren"" usw. enthalten.

Bis dahin bleiben Sie dran und verbunden mit Tecmint.com. Vergessen Sie nicht, uns Ihr wertvolles Feedback im Kommentarbereich unten zu geben.

"