Verschiedene Beispiele für Subshell
In diesem Teil des Tutorials werden die verschiedenen Möglichkeiten gezeigt, das Skript in der Subshell auszuführen.
Beispiel 1: Führen Sie die Subshell mit einfachen und doppelten Anführungszeichen aus
Erstellen Sie mit dem folgenden Skript eine Bash-Datei, die das aktuelle Datum und die aktuelle Uhrzeit ausgibt. Als nächstes wird die Variable $strVal gedruckt, indem das Subshell-Skript in einfache und doppelte Anführungszeichen eingeschlossen wird.
#!/bin/bash
#Drucken Sie den Befehl „date“ in der Subshell
Echo 'Heute ist „Datum“. '
#Definieren Sie eine String-Variable
strVal = „Bash-Subshell“
#Drucken Sie die Variable in der Subshell in einfachen Anführungszeichen
Echo „Die Ausgabe von einfachen Anführungszeichen:“ '$(echo $strVal)'
#Drucken Sie die Variable in der Subshell mit doppelten Anführungszeichen
Echo „Die Ausgabe von doppelten Anführungszeichen:“ ' $(echo $strVal) '
Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Das Subshell-Skript wird als Zeichenfolge ausgegeben, wenn es in einfache Anführungszeichen gesetzt wird. Das Subshell-Skript wird ausgeführt, wenn es in doppelte Anführungszeichen gesetzt wird:
Beispiel 2: Durchsuchen Sie alle Dateien der bestimmten Erweiterung mithilfe der Subshell
Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die Dateierweiterung als Eingabe des Benutzers übernimmt. Als nächstes wird der Befehl „ls“ in der Subshell ausgeführt, um alle Dateien dieser bestimmten Erweiterung zu durchsuchen.
#!/bin/bash
Echo -N „Geben Sie den Namen der Dateierweiterung ein:“
#Nehmen Sie den Dateierweiterungsnamen, nach dem gesucht werden soll
lesen ext
#Überprüfen Sie den Eingabewert
Wenn [ [ $ext == „“ ] ] ; Dann
#Fehlermeldung drucken
Echo „Es wird keine Verlängerung gewährt.“
anders
Echo „Dateinamen mit $ext Verlängerung:'
#Alle Dateinamen mit der angegebenen Erweiterung drucken
Echo ' $( echo `ls *.$ext` ) '
Sei
Die folgende Ausgabe erscheint nach der Ausführung des Skripts mit der Eingabe „txt“. Der Ausgabe zufolge sind am aktuellen Speicherort drei Textdateien vorhanden:
Nach der Ausführung des Skripts mit dem leeren Wert erscheint folgende Ausgabe:
Beispiel 3: Führen Sie den arithmetischen Ausdruck in der Subshell aus
Erstellen Sie mit dem folgenden Skript eine Bash-Datei, in der die gleichnamige Variable in der Haupt-Shell und der Sub-Shell verwendet wird. Die arithmetische Operation wird in der Hauptschale und der Unterschale definiert.
#!/bin/bash#Definieren Sie eine übergeordnete Shell-Variable
Nummer = 10
#Drucken Sie das Ergebnis basierend auf der Variablen der übergeordneten Shell
( ( Ergebnis = $Anzahl + 5 ) )
Echo 'Die Summe von $Anzahl +5= $ergebnis '
#Erstellen Sie eine Subshell-Variable mit demselben Namen wie die übergeordnete Shell
( Nummer = zwanzig ; ( ( Ergebnis = $Anzahl + 10 ) ) ; Echo 'Die Summe von $Anzahl +5= $ergebnis ' )
#Drucken Sie das Ergebnis erneut basierend auf der Variablen der übergeordneten Shell
Echo 'Die Summe von $Anzahl +5= $ergebnis '
Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die erste und die letzte Ausgabe zeigen das Ergebnis der Haupt-Shell. Die zweite Ausgabe zeigt das Ergebnis der Subshell. Die Variable der Haupt-Shell wird durch die Variable der Unter-Shell nicht verändert:
Beispiel 4: Mehrere Befehle in der Subshell ausführen
Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die Ausgabe des „echo“-Befehls an den „sed“-Befehl sendet, der den passenden String-Wert durch einen anderen String ersetzt. Die Ausgabe des Befehls „echo“ ist „JavaScript“. Dieser Wert wird also mit „Java“ und „JavaScript“ verglichen. Wenn eine Übereinstimmung gefunden wird, werden die übereinstimmenden Zeichenfolgen durch die Zeichenfolge „Typ“ ersetzt.
#!/bin/bash#Definieren Sie einen Zeichenfolgenwert
strVal = „JavaScript“
#Drucken Sie den ursprünglichen Zeichenfolgenwert
Echo „String-Wert: $strVal '
#Drucken Sie den Subshell-Wert
Echo -N „Subshell-Wert:“
Echo ' $(echo $strVal | sed 's|Java|JavaScript Type|') '
Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Laut Ausgabe wird die Zeichenfolge „Java“ durch die Zeichenfolge „Type“ ersetzt. Die Ausgabe der Subshell ist „JavaScript TypeScript“:
Abschluss
Mit der Subshell können ein oder mehrere Befehle oder Skripte ausgeführt werden, ohne dass dies Auswirkungen auf die Hauptshell hat. Die Verwendungszwecke der Subshell werden in diesem Tutorial anhand mehrerer Beispiele erläutert. Verschiedene Arten von Aufgaben wie das Durchsuchen der Dateien, das Berechnen der Summe von Zahlen, das Ersetzen der Zeichenfolgen usw. werden in den angegebenen Beispielen von der Subshell erledigt. Das Konzept der Verwendung der Subshell wird ordnungsgemäß demonstriert und die neuen Bash-Benutzer können die Subshell nun verwenden, nachdem sie dieses Tutorial gelesen haben.