Bash-Subshells

Bash Subshells



Manchmal ist es erforderlich, dass Sie einen oder mehrere Befehle oder Skripte im Hintergrund ausführen. Diese Aufgabe kann erledigt werden, indem alle Befehle oder Skripte in eine Skriptdatei geschrieben werden und die Datei mit dem kaufmännischen Und (&) ausgeführt wird oder indem die Befehle oder Skripte von der aktuellen Shell aus in der Subshell ausgeführt werden. Die Subshell kann zum Ausführen mehrerer Befehle oder Skripte verwendet werden, indem sie mit $() oder den Backticks (`) eingeschlossen wird. Die Methoden zur Verwendung der Bash-Subshell werden in diesem Tutorial gezeigt.

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.