Ulike eksempler på Subshell
De forskjellige måtene å utføre skriptet på i underskallet er vist i denne delen av opplæringen.
Eksempel 1: Utfør subshell ved å bruke enkelt anførselstegn og dobbelt anførselstegn
Lag en Bash-fil med følgende skript som skriver ut gjeldende dato og klokkeslett. Deretter skrives $strVal-variabelen ved å omslutte subshell-skriptet i de enkle anførselstegnene og de doble anførselstegnene.
#!/bin/bash
#Skriv ut `dato`-kommandoen i underskallet
ekko 'Idag er `dato` '
#Definer en strengvariabel
strVal = 'Bash Subshell'
#Skriv ut variabelen i underskallet med enkle anførselstegn
ekko 'Utgangen av enkle anførselstegn:' '$(echo $strVal)'
#Skriv ut variabelen i underskallet med doble anførselstegn
ekko 'Utgangen av doble anførselstegn:' ' $(echo $strVal) '
Følgende utdata vises etter utføring av skriptet. Subshell-skriptet skrives ut som en streng når det er vedlagt enkeltanførselstegn. Subshell-skriptet kjøres når det er omgitt av doble anførselstegn:
Eksempel 2: Søk i alle filer med den spesielle utvidelsen ved å bruke underskallet
Lag en Bash-fil med følgende skript som tar filtypen som et input fra brukeren. Deretter utføres 'ls'-kommandoen i underskallet for å søke i alle filene med den aktuelle utvidelsen.
#!/bin/bash
ekko -n 'Skriv inn navnet på filtypen:'
#Ta filtypen som skal søkes i
lese ext
#Sjekk inndataverdien
hvis [ [ $ext == '' ] ] ; deretter
#Skriv ut feilmelding
ekko 'Ingen forlengelse er gitt.'
ellers
ekko 'Filnavn med $ext Utvidelse:'
#Skriv ut alle filnavn med gitt filtype
ekko ' $( echo `ls *.$ext` ) '
være
Følgende utgang vises etter å ha utført skriptet med 'txt'-inndata. I henhold til utdataene eksisterer tre tekstfiler på gjeldende plassering:
Følgende utdata vises etter utføring av skriptet med den tomme verdien:
Eksempel 3: Utfør det aritmetiske uttrykket i underskallet
Lag en Bash-fil med følgende skript hvor variabelen med samme navn brukes i hovedskallet og underskallet. Den aritmetiske operasjonen er definert i hovedskallet og underskallet.
#!/bin/bash#Definer en overordnet shell-variabel
Antall = 10
#Skriv ut resultatet basert på variabelen til det overordnede skallet
( ( resultat = $nummer + 5 ) )
ekko 'Summen av $nummer +5= $resultat '
#Opprett en subshell-variabel med samme navn som det overordnede skallet
( Antall = tjue ; ( ( resultat = $nummer + 10 ) ) ; ekko 'Summen av $nummer +5= $resultat ' )
#Skriv ut resultatet basert på variabelen til det overordnede skallet igjen
ekko 'Summen av $nummer +5= $resultat '
Følgende utdata vises etter utføring av skriptet. Den første og den siste utgangen viser resultatet av hovedskallet. Den andre utgangen viser resultatet av underskallet. Variabelen til hovedskallet er ikke modifisert av variabelen til underskallet:
Eksempel 4: Utfør flere kommandoer i underskallet
Lag en Bash-fil med følgende skript som sender utdata fra 'echo'-kommandoen til 'sed'-kommandoen som erstatter den samsvarende strengverdien med en annen streng. Utdataene fra 'ekko'-kommandoen er 'JavaScript'. Så denne verdien sammenlignes med 'Java' og 'JavaScript'. Hvis et samsvar blir funnet, erstattes de samsvarende strengene med 'Type'-strengen.
#!/bin/bash#Definer en strengverdi
strVal = 'JavaScript'
#Skriv ut den opprinnelige strengverdien
ekko 'Strengverdi: $strVal '
#Skriv ut subshell-verdien
ekko -n 'Subshell-verdi: '
ekko ' $(echo $strVal | sed 's|Java|JavaScript Type|') '
Følgende utdata vises etter utføring av skriptet. I henhold til utdataene erstattes 'Java'-strengen med 'Type'-strengen. Utdataene fra underskallet er 'JavaScript TypeScript':
Konklusjon
En eller flere kommandoer eller skript kan utføres ved å bruke subshell uten å påvirke hovedskallet. Hensikten med å bruke subshell er forklart i denne opplæringen ved hjelp av flere eksempler. Ulike typer oppgaver som å søke i filene, beregne summen av tall, erstatte strengene osv. gjøres av subshell i de gitte eksemplene. Konseptet med å bruke subshellet er riktig demonstrert, og de nye Bash-brukerne vil nå kunne bruke subshellet etter å ha lest denne opplæringen.