Verschillende voorbeelden van subshell
De verschillende manieren om het script in de subshell uit te voeren worden in dit deel van de tutorial getoond.
Voorbeeld 1: Voer de subshell uit met behulp van het enkele aanhalingsteken en het dubbele aanhalingsteken
Maak een Bash-bestand met het volgende script dat de huidige datum en tijd afdrukt. Vervolgens wordt de variabele $strVal afgedrukt door het subshell-script tussen enkele aanhalingstekens en dubbele aanhalingstekens te plaatsen.
#!/bin/bash
#Druk het `date`-commando af in de subshell
echo 'Vandaag is `datum` '
#Definieer een tekenreeksvariabele
strVal = 'Bash-subschaal'
#Druk de variabele in de subshell af met enkele aanhalingstekens
echo 'De uitvoer van enkele aanhalingstekens:' '$(echo $strVal)'
#Druk de variabele in de subshell af met dubbele aanhalingstekens
echo 'De uitvoer van dubbele aanhalingstekens:' ' $(echo $strVal) '
De volgende uitvoer verschijnt na het uitvoeren van het script. Het subshell-script wordt afgedrukt als een tekenreeks wanneer het tussen de enkele aanhalingstekens staat. Het subshell-script wordt uitgevoerd wanneer het tussen dubbele aanhalingstekens staat:
Voorbeeld 2: zoek alle bestanden van de specifieke extensie met behulp van de subshell
Maak een Bash-bestand met het volgende script dat de bestandsextensie als invoer van de gebruiker gebruikt. Vervolgens wordt de opdracht 'ls' uitgevoerd in de subshell om alle bestanden van die specifieke extensie te doorzoeken.
#!/bin/bash
echo -N 'Voer de naam van de bestandsextensie in:'
#Neem de naam van de bestandsextensie die zal worden doorzocht
lezen ext
#Controleer de invoerwaarde
als [ [ $ext == '' ] ] ; Dan
#Foutbericht afdrukken
echo 'Er wordt geen verlenging gegeven.'
anders
echo 'Bestandsnamen met $ext verlenging:'
#Druk alle bestandsnamen met de opgegeven extensie af
echo ' $( echo `ls *.$ext` ) '
zijn
De volgende uitvoer verschijnt na het uitvoeren van het script met de invoer 'txt'. Volgens de uitvoer zijn er drie tekstbestanden op de huidige locatie:
De volgende uitvoer verschijnt na het uitvoeren van het script met de lege waarde:
Voorbeeld 3: Voer de rekenkundige uitdrukking uit in de subshell
Maak een Bash-bestand met het volgende script waarbij de variabele met dezelfde naam wordt gebruikt in de hoofdshell en de subshell. De rekenkundige bewerking wordt gedefinieerd in de hoofdshell en de subshell.
#!/bin/bash#Definieer een bovenliggende shell-variabele
nummer = 10
#Druk het resultaat af op basis van de variabele van de bovenliggende shell
( ( resultaat = $nummer + 5 ) )
echo 'De som van $nummer +5= $resultaat '
#Maak een subshell-variabele met dezelfde naam als de bovenliggende shell
( nummer = twintig ; ( ( resultaat = $nummer + 10 ) ) ; echo 'De som van $nummer +5= $resultaat ' )
#Druk het resultaat opnieuw af op basis van de variabele van de bovenliggende shell
echo 'De som van $nummer +5= $resultaat '
De volgende uitvoer verschijnt na het uitvoeren van het script. De eerste en de laatste uitvoer tonen het resultaat van de hoofdschil. De tweede uitvoer toont het resultaat van de subshell. De variabele van de hoofdshell wordt niet gewijzigd door de variabele van de subshell:
Voorbeeld 4: Voer meerdere opdrachten uit in de subshell
Maak een Bash-bestand met het volgende script dat de uitvoer van de opdracht 'echo' naar de opdracht 'sed' stuurt die de overeenkomende tekenreekswaarde vervangt door een andere tekenreeks. De uitvoer van de opdracht 'echo' is 'JavaScript'. Deze waarde wordt dus vergeleken met 'Java' en 'JavaScript'. Als er een overeenkomst wordt gevonden, worden de overeenkomende tekenreeksen vervangen door de tekenreeks 'Type'.
#!/bin/bash#Definieer een tekenreekswaarde
strVal = 'JavaScript'
#Druk de oorspronkelijke tekenreekswaarde af
echo 'Tekenreekswaarde: $strVal '
#Druk de subshell-waarde af
echo -N 'Subshell-waarde: '
echo ' $(echo $strVal | sed 's|Java|JavaScript-type|') '
De volgende uitvoer verschijnt na het uitvoeren van het script. Volgens de uitvoer wordt de tekenreeks 'Java' vervangen door de tekenreeks 'Type'. De uitvoer van de subshell is 'JavaScript TypeScript':
Conclusie
Een of meer opdrachten of scripts kunnen worden uitgevoerd met behulp van de subshell zonder de hoofdshell te beïnvloeden. De doeleinden van het gebruik van de subshell worden in deze zelfstudie uitgelegd aan de hand van meerdere voorbeelden. Verschillende soorten taken, zoals het doorzoeken van bestanden, het berekenen van de som van getallen, het vervangen van de tekenreeksen, enz. worden in de gegeven voorbeelden uitgevoerd door de subshell. Het concept van het gebruik van de subshell wordt goed gedemonstreerd en de nieuwe Bash-gebruikers kunnen nu de subshell gebruiken na het lezen van deze tutorial.