Diferite exemple de subshell
Diferitele moduri de executare a scriptului în subshell sunt prezentate în această parte a tutorialului.
Exemplul 1: Executați subshell-ul folosind ghilimele simple și ghilimele duble
Creați un fișier Bash cu următorul script care imprimă data și ora curente. Apoi, variabila $strVal este tipărită prin includerea scriptului subshell între ghilimele simple și ghilimele duble.
#!/bin/bash
#Tipărește comanda `date` în subshell
ecou 'Azi e `data` '
#Definește o variabilă șir
strVal = „Bash Subshell”
#Tipărește variabila în subshell folosind ghilimele simple
ecou „Ieșirea ghilimelelor simple:” „$(echo $strVal)”
#Tipărește variabila în subshell folosind ghilimele duble
ecou „Ieșirea ghilimelelor duble:” ' $(echo $strVal) '
Următoarea ieșire apare după executarea scriptului. Scriptul subshell este tipărit ca șir atunci când este inclus cu ghilimele simple. Scriptul subshell este executat atunci când este inclus cu ghilimele duble:
Exemplul 2: Căutați în toate fișierele unei anumite extensii folosind subshell
Creați un fișier Bash cu următorul script care ia extensia fișierului ca intrare de la utilizator. Apoi, comanda „ls” este executată în subshell pentru a căuta toate fișierele cu acea extensie anume.
#!/bin/bash
ecou -n „Introduceți numele extensiei fișierului:”
#Ia numele extensiei de fișier care va fi căutat
citit ext
#Verificați valoarea de intrare
dacă [ [ $ext == '' ] ] ; apoi
#Print mesaj de eroare
ecou „Nu se acordă prelungire”.
altfel
ecou „Nume de fișiere cu $ext extensie:'
#Tipărește toate numele fișierelor cu extensia dată
ecou ' $( echo `ls *.$ext` ) '
fi
Următoarea ieșire apare după executarea scriptului cu intrarea „txt”. Conform rezultatelor, trei fișiere text există în locația curentă:
Următoarea ieșire apare după executarea scriptului cu valoarea goală:
Exemplul 3: Executați expresia aritmetică în subshell
Creați un fișier Bash cu următorul script în care variabila cu același nume este utilizată în shell-ul principal și subshell. Operația aritmetică este definită în shell-ul principal și subshell.
#!/bin/bash#Definește o variabilă shell părinte
număr = 10
#Tipărește rezultatul pe baza variabilei shell-ului părinte
( ( rezultat = $numar + 5 ) )
ecou 'Suma $numar +5= $rezultat '
#Creați o variabilă subshell cu același nume cu shell-ul părinte
( număr = douăzeci ; ( ( rezultat = $numar + 10 ) ) ; ecou 'Suma $numar +5= $rezultat ' )
#Imprimați din nou rezultatul pe baza variabilei shell-ului părinte
ecou 'Suma $numar +5= $rezultat '
Următoarea ieșire apare după executarea scriptului. Prima și ultima ieșire arată rezultatul shell-ului principal. A doua ieșire arată rezultatul subshell-ului. Variabila shell-ului principal nu este modificată de variabila subshell-ului:
Exemplul 4: Executați mai multe comenzi în subshell
Creați un fișier Bash cu următorul script care trimite rezultatul comenzii „echo” în comanda „sed” care înlocuiește valoarea șirului potrivit cu un alt șir. Ieșirea comenzii „echo” este „JavaScript”. Deci, această valoare este comparată cu „Java” și „JavaScript”. Dacă se găsește o potrivire, șirurile care se potrivesc sunt înlocuite cu șirul „Tip”.
#!/bin/bash#Definește o valoare șir
strVal = „JavaScript”
#Tipărește valoarea șirului original
ecou „Valoare șir: $strVal '
#Tipărește valoarea subshell
ecou -n „Valoare subshell:”
ecou ' $(echo $strVal | sed 's|Java|JavaScript Type|') '
Următoarea ieșire apare după executarea scriptului. Conform rezultatelor, șirul „Java” este înlocuit cu șirul „Type”. Ieșirea subshell-ului este „JavaScript TypeScript”:
Concluzie
Una sau mai multe comenzi sau scripturi pot fi executate folosind subshell-ul fără a afecta shell-ul principal. Scopurile utilizării subshell-ului sunt explicate în acest tutorial folosind mai multe exemple. Diferite tipuri de sarcini, cum ar fi căutarea fișierelor, calcularea sumei numerelor, înlocuirea șirurilor de caractere etc. sunt realizate de subshell în exemplele date. Conceptul de utilizare a subshell-ului este demonstrat în mod corespunzător, iar noii utilizatori Bash vor putea acum să folosească subshell-ul după ce au citit acest tutorial.