Įvairūs subshell pavyzdžiai
Šioje pamokos dalyje parodyti skirtingi scenarijaus vykdymo poapkele būdai.
1 pavyzdys: Vykdykite subshell, naudodami vieną ir dvigubą citatą
Sukurkite Bash failą su šiuo scenarijumi, kuris išspausdina dabartinę datą ir laiką. Tada $strVal kintamasis išspausdinamas įtraukiant subshell scenarijų į vienvietes ir dvigubas kabutes.
#!/bin/bash
#Spausdinkite komandą „data“ antriniame apvalkale
aidas 'Šiandien yra 'data'. “
#Apibrėžkite eilutės kintamąjį
strVal = „Bash Subshell“
#Spausdinkite kintamąjį posluoksnyje naudodami atskiras kabutes
aidas 'Pavienių kabučių išvestis:' '$(echo $strVal)'
#Spausdinkite kintamąjį posluoksnyje naudodami dvigubas kabutes
aidas 'Dvigubų kabučių išvestis:' “ $(echo $strVal) “
Įvykdžius scenarijų pasirodo ši išvestis. Subshell scenarijus spausdinamas kaip eilutė, kai jis yra su atskiromis kabutėmis. Subshell scenarijus vykdomas, kai jis yra su dvigubomis kabutėmis:
2 pavyzdys: Ieškokite visų konkretaus plėtinio failų naudodami subshell
Sukurkite „Bash“ failą naudodami šį scenarijų, kuris naudoja failo plėtinį kaip vartotojo įvestį. Tada komanda „ls“ vykdoma subshell, kad būtų galima ieškoti visų to konkretaus plėtinio failų.
#!/bin/bash
aidas -n 'Įveskite failo plėtinio pavadinimą:'
#Paimkite failo plėtinio pavadinimą, kurio bus ieškoma
skaityti ext
#Patikrinkite įvesties vertę
jeigu [ [ $ext == '' ] ] ; tada
#Spausdinti klaidos pranešimą
aidas „Pratęsimas nesuteikiamas“.
Kitas
aidas „Failų pavadinimai su $ext plėtinys:'
#Spausdinkite visus failų pavadinimus su nurodytu plėtiniu
aidas “ $( echo `ls *.$ext` ) “
būti
Vykdant scenarijų su „txt“ įvestimi pasirodo ši išvestis. Pagal išvestį dabartinėje vietoje yra trys tekstiniai failai:
Įvykdžius scenarijų su tuščia reikšme pasirodo ši išvestis:
3 pavyzdys: Vykdykite aritmetinę išraišką subshell
Sukurkite „Bash“ failą su šiuo scenarijumi, kuriame to paties pavadinimo kintamasis naudojamas pagrindiniame apvalkale ir posluoksnyje. Aritmetinis veiksmas apibrėžiamas pagrindiniame apvalkale ir antriniame apvalkale.
#!/bin/bash#Apibrėžkite pirminį apvalkalo kintamąjį
numerį = 10
#Spausdinkite rezultatą pagal pirminio apvalkalo kintamąjį
( ( rezultatas = $numeris + 5 ) )
aidas 'Suma $numeris +5= $ rezultatas “
#Sukurkite subshell kintamąjį tuo pačiu pirminio apvalkalo pavadinimu
( numerį = dvidešimt ; ( ( rezultatas = $numeris + 10 ) ) ; aidas 'Suma $numeris +5= $ rezultatas “ )
#Iš naujo išspausdinkite rezultatą pagal pirminio apvalkalo kintamąjį
aidas 'Suma $ numeris +5= $ rezultatas “
Įvykdžius scenarijų pasirodo ši išvestis. Pirmasis ir paskutinis išvestis rodo pagrindinio apvalkalo rezultatą. Antroji išvestis rodo subshell rezultatą. Pagrindinio apvalkalo kintamasis nėra modifikuojamas subshell kintamojo:
4 pavyzdys: Vykdykite kelias komandas subshell
Sukurkite „Bash“ failą su šiuo scenarijumi, kuris siunčia komandos „echo“ išvestį į komandą „sed“, kuri atitinkančią eilutės reikšmę pakeičia kita eilute. Komandos „echo“ išvestis yra „JavaScript“. Taigi, ši reikšmė lyginama su „Java“ ir „JavaScript“. Jei randama atitiktis, atitinkančios eilutės pakeičiamos eilute „Tipas“.
#!/bin/bash#Apibrėžkite eilutės reikšmę
strVal = 'JavaScript'
#Atspausdinkite pradinę eilutės reikšmę
aidas 'Eilutės reikšmė: $strVal “
#Spausdinkite subshell reikšmę
aidas -n 'Subshell reikšmė: '
aidas “ $(echo $strVal | sed 's|Java|JavaScript Type|') “
Vykdžius scenarijų pasirodo ši išvestis. Pagal išvestį „Java“ eilutė pakeičiama eilute „Tipas“. Subshell išvestis yra „JavaScript TypeScript“:
Išvada
Viena ar daugiau komandų ar scenarijų gali būti vykdomos naudojant subshell, nepažeidžiant pagrindinio apvalkalo. Šiame vadove, naudojant kelis pavyzdžius, paaiškinami posluoksnio naudojimo tikslai. Įvairių tipų užduotys, tokios kaip failų paieška, skaičių sumos apskaičiavimas, eilučių keitimas ir kt., pateiktuose pavyzdžiuose atliekamos pagal subshell. Subshell naudojimo koncepcija yra tinkamai parodyta, o nauji Bash vartotojai dabar galės naudoti subshell, perskaitę šią mokymo programą.