Olika exempel på Subshell
De olika sätten att köra skriptet i underskalet visas i den här delen av handledningen.
Exempel 1: Kör subskalet med enkla citat och dubbla citat
Skapa en Bash-fil med följande skript som skriver ut aktuellt datum och tid. Därefter skrivs $strVal-variabeln ut genom att omsluta subshell-skriptet inom de enkla citattecken och de dubbla citattecken.
#!/bin/bash
#Skriv ut kommandot `date` i underskalet
eko 'Idag är 'datum'. '
#Definiera en strängvariabel
strVal = 'Bash Subshell'
#Skriv ut variabeln i underskalet med enstaka citattecken
eko 'Utgången av enstaka citattecken:' '$(echo $strVal)'
#Skriv ut variabeln i underskalet med dubbla citattecken
eko 'Utgången av dubbla citattecken:' ' $(echo $strVal) '
Följande utdata visas efter exekvering av skriptet. Subshell-skriptet skrivs ut som en sträng när det omges av de enskilda citattecken. Subshell-skriptet körs när det omges av dubbla citattecken:
Exempel 2: Sök i alla filer i det särskilda tillägget med hjälp av underskalet
Skapa en Bash-fil med följande skript som tar filtillägget som en input från användaren. Därefter exekveras kommandot 'ls' i underskalet för att söka i alla filer med det specifika tillägget.
#!/bin/bash
eko -n 'Ange namnet på filtillägget:'
#Ta namnet på filtillägget som kommer att sökas igenom
läsa ext
#Kontrollera inmatningsvärdet
om [ [ $ext == '' ] ] ; sedan
#Skriv ut felmeddelande
eko 'Ingen förlängning ges.'
annan
eko 'Filnamn med $ext förlängning:'
#Skriv ut alla filnamn med det angivna tillägget
eko ' $( echo `ls *.$ext` ) '
vara
Följande utdata visas efter exekvering av skriptet med 'txt'-ingången. Enligt utdata finns tre textfiler på den aktuella platsen:
Följande utdata visas efter exekvering av skriptet med det tomma värdet:
Exempel 3: Kör det aritmetiska uttrycket i underskalet
Skapa en Bash-fil med följande skript där variabeln med samma namn används i huvudskalet och underskalet. Den aritmetiska operationen definieras i huvudskalet och underskalet.
#!/bin/bash#Definiera en överordnad skalvariabel
siffra = 10
#Skriv ut resultatet baserat på variabeln för det överordnade skalet
( ( resultat = $nummer + 5 ) )
eko 'Summan av $nummer +5= $resultat '
#Skapa en subshell-variabel med samma namn som det överordnade skalet
( siffra = tjugo ; ( ( resultat = $nummer + 10 ) ) ; eko 'Summan av $nummer +5= $resultat ' )
#Skriv ut resultatet baserat på variabeln i det överordnade skalet igen
eko 'Summan av $nummer +5= $resultat '
Följande utdata visas efter exekvering av skriptet. Den första och den sista utgången visar resultatet av huvudskalet. Den andra utgången visar resultatet av underskalet. Variabeln för huvudskalet modifieras inte av variabeln för underskalet:
Exempel 4: Kör flera kommandon i underskalet
Skapa en Bash-fil med följande skript som skickar utdata från kommandot 'echo' till kommandot 'sed' som ersätter det matchande strängvärdet med en annan sträng. Utdata från kommandot 'echo' är 'JavaScript'. Så detta värde jämförs med 'Java' och 'JavaScript'. Om en matchning hittas ersätts de matchande strängarna med 'Typ'-strängen.
#!/bin/bash#Definiera ett strängvärde
strVal = 'JavaScript'
#Skriv ut det ursprungliga strängvärdet
eko 'Strängvärde: $strVal '
#Skriv ut subshell-värdet
eko -n 'Subshell värde: '
eko ' $(echo $strVal | sed 's|Java|JavaScript-typ|') '
Följande utdata visas efter exekvering av skriptet. Enligt utgången ersätts 'Java'-strängen med 'Type'-strängen. Utdata från underskalet är 'JavaScript TypeScript':
Slutsats
Ett eller flera kommandon eller skript kan köras med hjälp av subshell utan att påverka huvudskalet. Syften med att använda underskalet förklaras i den här handledningen med hjälp av flera exempel. Olika typer av uppgifter som att söka i filerna, beräkna summan av siffror, ersätta strängarna etc. görs av subshell i de givna exemplen. Konceptet med att använda underskalet är korrekt demonstrerat och de nya Bash-användarna kommer nu att kunna använda underskalet efter att ha läst den här handledningen.