Forskellige eksempler på Subshell
De forskellige måder at udføre scriptet i subshellen er vist i denne del af selvstudiet.
Eksempel 1: Udfør subshell ved hjælp af enkelt citat og dobbelt citat
Opret en Bash-fil med følgende script, der udskriver den aktuelle dato og klokkeslæt. Dernæst udskrives $strVal-variablen ved at omslutte subshell-scriptet inden for de enkelte anførselstegn og de dobbelte anførselstegn.
#!/bin/bash
#Udskriv `dato`-kommandoen i subshellen
ekko 'Idag er 'dato' '
#Definer en strengvariabel
strVal = 'Bash Subshell'
#Udskriv variablen i subshellen med enkelte anførselstegn
ekko 'Outputtet af enkelte citater:' '$(echo $strVal)'
#Udskriv variablen i subshellen med dobbelte anførselstegn
ekko 'Udgangen af dobbelte anførselstegn:' ' $(ekko $strVal) '
Følgende output vises efter eksekvering af scriptet. Subshell-scriptet udskrives som en streng, når det er omgivet af de enkelte anførselstegn. Subshell-scriptet udføres, når det er omgivet af dobbelte anførselstegn:
Eksempel 2: Søg i alle filer i den særlige udvidelse ved hjælp af subshell
Opret en Bash-fil med følgende script, der tager filtypenavnet som input fra brugeren. Dernæst udføres 'ls'-kommandoen i subshellen for at søge i alle filer i den pågældende udvidelse.
#!/bin/bash
ekko -n 'Indtast navnet på filtypenavnet:'
#Tag filtypenavnet, der vil blive søgt efter
Læs ext
#Tjek inputværdien
hvis [ [ $ext == '' ] ] ; derefter
#Udskriv fejlmeddelelse
ekko 'Der gives ingen forlængelse.'
andet
ekko 'Filnavne med $ext udvidelse:'
#Udskriv alle filnavne med den givne udvidelse
ekko ' $( echo `ls *.$ext` ) '
være
Følgende output vises efter eksekvering af scriptet med 'txt'-input. Ifølge outputtet findes der tre tekstfiler på den aktuelle placering:
Følgende output vises efter eksekvering af scriptet med den tomme værdi:
Eksempel 3: Udfør det aritmetiske udtryk i underskallen
Opret en Bash-fil med følgende script, hvor variablen af samme navn bruges i hovedskallen og underskallen. Den aritmetiske operation er defineret i hovedskallen og subskallen.
#!/bin/bash#Definer en overordnet shell-variabel
nummer = 10
#Udskriv resultatet baseret på variablen i den overordnede shell
( ( resultat = $nummer + 5 ) )
ekko 'Summen af $nummer +5= $resultat '
#Opret en subshell-variabel med samme navn som den overordnede shell
( nummer = tyve ; ( ( resultat = $nummer + 10 ) ) ; ekko 'Summen af $nummer +5= $resultat ' )
#Udskriv resultatet baseret på variablen i den overordnede shell igen
ekko 'Summen af $nummer +5= $resultat '
Følgende output vises efter eksekvering af scriptet. Den første og den sidste udgang viser resultatet af hovedskallen. Det andet output viser resultatet af subshellen. Variablen for hovedskallen modificeres ikke af variabelen for underskallen:
Eksempel 4: Udfør flere kommandoer i underskallen
Opret en Bash-fil med følgende script, der sender outputtet af 'echo'-kommandoen til 'sed'-kommandoen, der erstatter den matchende strengværdi med en anden streng. Outputtet af 'ekko'-kommandoen er 'JavaScript'. Så denne værdi sammenlignes med 'Java' og 'JavaScript'. Hvis der findes et match, erstattes de matchende strenge med 'Type'-strengen.
#!/bin/bash#Definer en strengværdi
strVal = 'JavaScript'
#Udskriv den oprindelige strengværdi
ekko 'Stringværdi: $strVal '
#Udskriv subshell-værdien
ekko -n 'Subshell værdi: '
ekko ' $(echo $strVal | sed 's|Java|JavaScript Type|') '
Følgende output vises efter eksekvering af scriptet. Ifølge outputtet erstattes 'Java'-strengen med 'Type'-strengen. Outputtet af subshellen er 'JavaScript TypeScript':
Konklusion
En eller flere kommandoer eller scripts kan udføres ved hjælp af subshellen uden at påvirke hovedskallen. Formålet med at bruge subshellen er forklaret i denne tutorial ved hjælp af flere eksempler. Forskellige typer opgaver såsom at søge i filerne, beregne summen af tal, udskifte strengene osv. udføres af subshellen i de givne eksempler. Konceptet med at bruge subshellen er korrekt demonstreret, og de nye Bash-brugere vil nu være i stand til at bruge subshellen efter at have læst denne tutorial.