Visiems Linux platinimams apvalkalo scenarijus yra tarsi burtų lazdelė, kuri automatizuoja procesą, taupo vartotojų laiką ir padidina produktyvumą. Ši scenarijų rengimo pamoka supažindins jus su 25 plius scenarijų pavyzdžiais.
Tačiau prieš pereinant prie temos apvalkalo scenarijus pavyzdžius, supraskime apvalkalo scenarijų ir tikrus apvalkalo scenarijų naudojimo atvejus.
Kas yra „Shell Script“?
Na, apvalkalas yra a CLI ( komandų eilutės vertėjas ), kuris veikia teksto lange, kuriame vartotojai gali valdyti ir vykdyti apvalkalo komandas. Kita vertus, „Linux“ sistemoje vykdomų komandų rinkinio rašymo procesas. Failas, kuriame yra tokios instrukcijos, vadinamas bash scenarijumi.
„Shell“ scenarijų naudojimas
Toliau pateikiami keli įprasti „Shell Script“ naudojimo būdai:
- Užduočių automatizavimas – Jis gali būti naudojamas automatizuoti pasikartojančias užduotis, pvz., įprastas atsargines kopijas ir programinės įrangos diegimo užduotis.
- Pritaikymas – Galima naudoti apvalkalo scenarijus, kad sukurtumėte komandinės eilutės aplinką ir lengvai atliktumėte savo užduotį pagal poreikius.
- Failų tvarkymas – Apvalkalo scenarijai taip pat gali būti naudojami failams ir katalogams valdyti ir manipuliuoti, pvz., failams perkelti, kopijuoti, pervardyti ar ištrinti.
„Linux“ apvalkalo scenarijaus pavyzdžiai
1) Ką reiškia shebang (#!) apvalkalo scenarijaus pradžioje?
The shebang (#!) scenarijaus pradžioje nurodo interpretatorių, kuris turėtų būti naudojamas scenarijui vykdyti. Ji nurodo sistemai, kuris apvalkalas ar interpretatorius turi interpretuoti scenarijaus komandas.
Pavyzdžiui: Tarkime, kad turime scenarijų pavadinimu myscript.sh parašyta Bash apvalkale:
apvalkalo scenarijų padarymas vykdomu

Shebang
Šiame pavyzdyje:
- #!/bin/bash scenarijaus pradžioje rodo, kad scenarijus turi būti interpretuojamas naudojant Bash apvalkalą.
- Echo komandos naudojamos žinutėms spausdinti į terminalą.
2) Kaip paleisti apvalkalo scenarijų iš komandinės eilutės?
Norėdami paleisti apvalkalo scenarijų iš komandinės eilutės, turime atlikti šiuos veiksmus:
- Įsitikinkite, kad scenarijaus failas turi vykdomuosius leidimus, naudodami chmod komanda :
chmod +x myscript.sh>
- Vykdykite scenarijų naudodami jo failo pavadinimą:
./myscript.sh>
Čia jūs turite pakeisti myscript.sh su savo scenarijaus pavadinimu.
3) Parašykite apvalkalo scenarijų, kuris išspausdina techcodeview.com į terminalą.
Sukurkite scenarijaus pavadinimą „myscript.sh“ (mes naudojame „ nes ` redaktorius, galite pasirinkti bet kurį redaktorių)
vim myscript.sh>
#!/bin/bash
# Šis scenarijus išspausdina techcodeview.com į terminalą
echo techcodeview.com

spausdinimo pavadinimas
Mes padarome savo scenarijų vykdomąjį naudodami „chmod +x“, tada vykdome su „./myscipt.sh“ ir gauname norimą išvestį techcodeview.com.
4) Paaiškinkite echo komandos paskirtį apvalkalo scenarijuose.
The aido komanda naudojamas tekstui arba kintamiesiems rodyti terminale. Jis dažniausiai naudojamas spausdinti pranešimus, kintamąsias reikšmes ir generuoti programos išvestį.

aido komanda
Šiame pavyzdyje mes tiesiogiai vykdėme „echo“ terminale, nes jis veikia taip pat apvalkalo scenarijuje.
5) Kaip apvalkalo scenarijuje galima priskirti reikšmę kintamajam?
Kintamiesiems priskiriamos reikšmės naudojant priskyrimo operatorių =.
Pavyzdžiui:
#!/bin/bash
# Vertės priskyrimas kintamajam
vardas = Jayesh
amžius = 21
echo $vardas $amžius
Paaiškinimas:
- Vardo kintamajam priskiriama reikšmė Jayesh.
- Amžiaus kintamajam priskiriama 21 reikšmė.
- echo naudojamas spausdinti, o `$name` `$age` naudojamas kintamuosiuose saugomai vertei iškviesti.

6) Parašykite apvalkalo scenarijų, kuris kaip įvestį paima vartotojo vardą ir pasveikina juos.
Sukurkite scenarijaus pavadinimą „example.sh“.
#!/bin/bash
# Paklauskite vartotojo vardo
echo Koks tavo vardas?
skaityti vardą
# Sveikiname vartotoją
echo Sveiki, $name! Malonu susipažinti.
Paaiškinimas:
- #!/bin/bash: Tai shebang linija. Ji nurodo sistemai naudoti „Bash“ interpretatorių scenarijui vykdyti.
- # Paklauskite vartotojo vardo: Tai komentaras. Jame pateikiamas kontekstas apie būsimą kodą. Vertėjas nepaiso komentarų.
- echo Koks jūsų vardas?: komanda echo naudojama tekstui terminale rodyti dvigubomis kabutėmis.
- skaitymo pavadinimas: skaitymo komanda laukia, kol vartotojas įves tekstą ir išsaugo jį kintamojo pavadinime.
- echo Sveiki, $name! Malonu susipažinti. Šioje eilutėje naudojama komanda echo, kad būtų išspausdintas sveikinimo pranešimas, kuriame yra vardo kintamojo reikšmė, kuri buvo surinkta iš vartotojo įvesties.

7) Kaip pridėti komentarų prie apvalkalo scenarijaus?
Komentarai apvalkalo scenarijuose naudojami kodo paaiškinimams ar kontekstui pateikti. Vertėjas jų nepaiso ir yra skirtas tik žmonėms, skaitantiems scenarijų. Galite pridėti komentarų naudodami simbolį #.
#!/bin/bash
# Tai yra komentaras, paaiškinantis scenarijaus tikslą
echo gfg
8) Sukurkite apvalkalo scenarijų, kuris patikrintų, ar dabartiniame kataloge yra failas.
Štai scenarijus, kuris patikrina, ar failas, pavadintas example.txt, yra dabartiniame kataloge:
#!/bin/bash
file=example.txt
# Patikrinkite, ar failas egzistuoja
if [ -e $failas ]; tada
echo Failas egzistuoja: $file
Kitas
echo Failas nerastas: $file
būti
Paaiškinimas:
- #!/bin/bash: tai shebang eilutė, nurodanti interpretatorių (/bin/bash), kuris bus naudojamas scenarijui paleisti.
- file=example.txt: ši eilutė apibrėžia kintamąjį failą ir priskiria jam reikšmę example.txt. Galite jį pakeisti failo, kurį norite patikrinti, pavadinimu.
- if [ -e $failas ]; then: Ši eilutė pradeda teiginį if. Sąlyga [ -e $file ] patikrina, ar failas, nurodytas failo kintamojo reikšme, egzistuoja. Vėliava -e naudojama failo egzistavimui patikrinti.
- echo Failas egzistuoja: $failas: jei sąlyga teisinga (t. y. failas egzistuoja), ši eilutė išspausdina pranešimą, nurodantį, kad failas egzistuoja, kartu su failo pavadinimu.
- else: jei sąlyga klaidinga (t. y. failas neegzistuoja), scenarijus vykdo kodą, esantį skyrelyje else.
- echo Failas nerastas: $failas: ši eilutė spausdina klaidos pranešimą, nurodantį, kad nurodytas failas nerastas, kartu su failo pavadinimu.
- fi: ši eilutė žymi if sakinio pabaigą.

Failo paieška
9) Kuo skiriasi viengubos kabutės (') ir dvigubos kabutės () apvalkalo scenarijuose?
Viengubos kabutės (') ir dvigubos kabutės () naudojamos eilėms įterpti apvalkalo scenarijuose, tačiau jos veikia skirtingai:
- Pavienės kabutės: viskas tarp pavienių kabučių traktuojama kaip pažodinė eilutė. Kintamųjų pavadinimai ir dauguma specialiųjų simbolių neišplečiami.
- Dvigubos kabutės: kintamieji ir tam tikri specialieji simboliai dvigubose kabutėse išplečiami. Turinys gali būti keičiamas kintamuoju ir komandų pakeitimu.
#!/bin/bash
abcd=Sveiki
echo ‘$abcd’ # Išvestis: $abcd
echo $abcd # Išvestis: Sveiki
10) Kaip galite naudoti komandinės eilutės argumentus apvalkalo scenarijuje?
Komandinės eilutės argumentai yra reikšmės, pateikiamos scenarijui, kai jis vykdomas. Juos galima pasiekti scenarijuje naudojant specialius kintamuosius, pvz., , ir kt., kur reiškia pirmąjį argumentą, - antrąjį argumentą ir pan.
Pavyzdžiui: Jei mūsų scenarijaus pavadinimas yra „example.sh“.
#!/bin/bash
echo scenarijaus pavadinimas:
Visiems Linux platinimams apvalkalo scenarijus yra tarsi burtų lazdelė, kuri automatizuoja procesą, taupo vartotojų laiką ir padidina produktyvumą. Ši scenarijų rengimo pamoka supažindins jus su 25 plius scenarijų pavyzdžiais.
Tačiau prieš pereinant prie temos apvalkalo scenarijus pavyzdžius, supraskime apvalkalo scenarijų ir tikrus apvalkalo scenarijų naudojimo atvejus.
Kas yra „Shell Script“?
Na, apvalkalas yra a CLI ( komandų eilutės vertėjas ), kuris veikia teksto lange, kuriame vartotojai gali valdyti ir vykdyti apvalkalo komandas. Kita vertus, „Linux“ sistemoje vykdomų komandų rinkinio rašymo procesas. Failas, kuriame yra tokios instrukcijos, vadinamas bash scenarijumi.
„Shell“ scenarijų naudojimas
Toliau pateikiami keli įprasti „Shell Script“ naudojimo būdai:
- Užduočių automatizavimas – Jis gali būti naudojamas automatizuoti pasikartojančias užduotis, pvz., įprastas atsargines kopijas ir programinės įrangos diegimo užduotis.
- Pritaikymas – Galima naudoti apvalkalo scenarijus, kad sukurtumėte komandinės eilutės aplinką ir lengvai atliktumėte savo užduotį pagal poreikius.
- Failų tvarkymas – Apvalkalo scenarijai taip pat gali būti naudojami failams ir katalogams valdyti ir manipuliuoti, pvz., failams perkelti, kopijuoti, pervardyti ar ištrinti.
„Linux“ apvalkalo scenarijaus pavyzdžiai
1) Ką reiškia shebang (#!) apvalkalo scenarijaus pradžioje?
The shebang (#!) scenarijaus pradžioje nurodo interpretatorių, kuris turėtų būti naudojamas scenarijui vykdyti. Ji nurodo sistemai, kuris apvalkalas ar interpretatorius turi interpretuoti scenarijaus komandas.
Pavyzdžiui: Tarkime, kad turime scenarijų pavadinimu myscript.sh parašyta Bash apvalkale:
Shebang
Šiame pavyzdyje:
- #!/bin/bash scenarijaus pradžioje rodo, kad scenarijus turi būti interpretuojamas naudojant Bash apvalkalą.
- Echo komandos naudojamos žinutėms spausdinti į terminalą.
2) Kaip paleisti apvalkalo scenarijų iš komandinės eilutės?
Norėdami paleisti apvalkalo scenarijų iš komandinės eilutės, turime atlikti šiuos veiksmus:
- Įsitikinkite, kad scenarijaus failas turi vykdomuosius leidimus, naudodami chmod komanda :
chmod +x myscript.sh>
- Vykdykite scenarijų naudodami jo failo pavadinimą:
./myscript.sh>Čia jūs turite pakeisti myscript.sh su savo scenarijaus pavadinimu.
3) Parašykite apvalkalo scenarijų, kuris išspausdina techcodeview.com į terminalą.
Sukurkite scenarijaus pavadinimą „myscript.sh“ (mes naudojame „ nes ` redaktorius, galite pasirinkti bet kurį redaktorių)
vim myscript.sh>#!/bin/bash
# Šis scenarijus išspausdina techcodeview.com į terminalą
echo techcodeview.comspausdinimo pavadinimas
Mes padarome savo scenarijų vykdomąjį naudodami „chmod +x“, tada vykdome su „./myscipt.sh“ ir gauname norimą išvestį techcodeview.com.
4) Paaiškinkite echo komandos paskirtį apvalkalo scenarijuose.
The aido komanda naudojamas tekstui arba kintamiesiems rodyti terminale. Jis dažniausiai naudojamas spausdinti pranešimus, kintamąsias reikšmes ir generuoti programos išvestį.
aido komanda
Šiame pavyzdyje mes tiesiogiai vykdėme „echo“ terminale, nes jis veikia taip pat apvalkalo scenarijuje.
5) Kaip apvalkalo scenarijuje galima priskirti reikšmę kintamajam?
Kintamiesiems priskiriamos reikšmės naudojant priskyrimo operatorių =.
Pavyzdžiui:
#!/bin/bash
# Vertės priskyrimas kintamajam
vardas = Jayesh
amžius = 21
echo $vardas $amžiusPaaiškinimas:
- Vardo kintamajam priskiriama reikšmė Jayesh.
- Amžiaus kintamajam priskiriama 21 reikšmė.
- echo naudojamas spausdinti, o `$name` `$age` naudojamas kintamuosiuose saugomai vertei iškviesti.
6) Parašykite apvalkalo scenarijų, kuris kaip įvestį paima vartotojo vardą ir pasveikina juos.
Sukurkite scenarijaus pavadinimą „example.sh“.
#!/bin/bash
# Paklauskite vartotojo vardo
echo Koks tavo vardas?
skaityti vardą
# Sveikiname vartotoją
echo Sveiki, $name! Malonu susipažinti.Paaiškinimas:
- #!/bin/bash: Tai shebang linija. Ji nurodo sistemai naudoti „Bash“ interpretatorių scenarijui vykdyti.
- # Paklauskite vartotojo vardo: Tai komentaras. Jame pateikiamas kontekstas apie būsimą kodą. Vertėjas nepaiso komentarų.
- echo Koks jūsų vardas?: komanda echo naudojama tekstui terminale rodyti dvigubomis kabutėmis.
- skaitymo pavadinimas: skaitymo komanda laukia, kol vartotojas įves tekstą ir išsaugo jį kintamojo pavadinime.
- echo Sveiki, $name! Malonu susipažinti. Šioje eilutėje naudojama komanda echo, kad būtų išspausdintas sveikinimo pranešimas, kuriame yra vardo kintamojo reikšmė, kuri buvo surinkta iš vartotojo įvesties.
7) Kaip pridėti komentarų prie apvalkalo scenarijaus?
Komentarai apvalkalo scenarijuose naudojami kodo paaiškinimams ar kontekstui pateikti. Vertėjas jų nepaiso ir yra skirtas tik žmonėms, skaitantiems scenarijų. Galite pridėti komentarų naudodami simbolį #.
#!/bin/bash
# Tai yra komentaras, paaiškinantis scenarijaus tikslą
echo gfg8) Sukurkite apvalkalo scenarijų, kuris patikrintų, ar dabartiniame kataloge yra failas.
Štai scenarijus, kuris patikrina, ar failas, pavadintas example.txt, yra dabartiniame kataloge:
#!/bin/bash
file=example.txt
# Patikrinkite, ar failas egzistuoja
if [ -e $failas ]; tada
echo Failas egzistuoja: $file
Kitas
echo Failas nerastas: $file
būtiPaaiškinimas:
- #!/bin/bash: tai shebang eilutė, nurodanti interpretatorių (/bin/bash), kuris bus naudojamas scenarijui paleisti.
- file=example.txt: ši eilutė apibrėžia kintamąjį failą ir priskiria jam reikšmę example.txt. Galite jį pakeisti failo, kurį norite patikrinti, pavadinimu.
- if [ -e $failas ]; then: Ši eilutė pradeda teiginį if. Sąlyga [ -e $file ] patikrina, ar failas, nurodytas failo kintamojo reikšme, egzistuoja. Vėliava -e naudojama failo egzistavimui patikrinti.
- echo Failas egzistuoja: $failas: jei sąlyga teisinga (t. y. failas egzistuoja), ši eilutė išspausdina pranešimą, nurodantį, kad failas egzistuoja, kartu su failo pavadinimu.
- else: jei sąlyga klaidinga (t. y. failas neegzistuoja), scenarijus vykdo kodą, esantį skyrelyje else.
- echo Failas nerastas: $failas: ši eilutė spausdina klaidos pranešimą, nurodantį, kad nurodytas failas nerastas, kartu su failo pavadinimu.
- fi: ši eilutė žymi if sakinio pabaigą.
Failo paieška
9) Kuo skiriasi viengubos kabutės (') ir dvigubos kabutės () apvalkalo scenarijuose?
Viengubos kabutės (') ir dvigubos kabutės () naudojamos eilėms įterpti apvalkalo scenarijuose, tačiau jos veikia skirtingai:
- Pavienės kabutės: viskas tarp pavienių kabučių traktuojama kaip pažodinė eilutė. Kintamųjų pavadinimai ir dauguma specialiųjų simbolių neišplečiami.
- Dvigubos kabutės: kintamieji ir tam tikri specialieji simboliai dvigubose kabutėse išplečiami. Turinys gali būti keičiamas kintamuoju ir komandų pakeitimu.
#!/bin/bash
abcd=Sveiki
echo ‘$abcd’ # Išvestis: $abcd
echo $abcd # Išvestis: Sveiki10) Kaip galite naudoti komandinės eilutės argumentus apvalkalo scenarijuje?
Komandinės eilutės argumentai yra reikšmės, pateikiamos scenarijui, kai jis vykdomas. Juos galima pasiekti scenarijuje naudojant specialius kintamuosius, pvz., $1, $2 ir kt., kur $1 reiškia pirmąjį argumentą, $2 - antrąjį argumentą ir pan.
Pavyzdžiui: Jei mūsų scenarijaus pavadinimas yra „example.sh“.
#!/bin/bash
echo scenarijaus pavadinimas: $0
echo Pirmasis argumentas: 1 USD
echo Antrasis argumentas: 2 USDJei paleisime scenarijų su `.example.sh hello_1 hello_2`, jis išves:
cli argumentai
11) Kaip naudojate for kilpą, kad galėtumėte kartoti reikšmių sąrašą?
Sukurkite scenarijaus pavadinimą „example.sh“.
#!/bin/bash
vaisiai = (obuolių bananų vyšnių data)
vaisiams ${fruits[@]}; daryti
echo Dabartinis vaisius: $vaisius
padarytaPaaiškinimas:
`fruits=` eilutė sukuria vaisių masyvą su keturiais elementais: obuoliu, bananu, vyšnia ir data.
- vaisiams ${fruits[@]}; do: ši eilutė pradeda for kilpą. Štai ką reiškia kiekviena dalis:
- vaisiams: tai deklaruoja ciklo kintamąjį, vadinamą vaisiais. Kiekvienoje ciklo iteracijoje vaisius išsaugos dabartinio vaisių masyvo elemento vertę.
- ${fruits[@]}: tai masyvo išplėtimas, kuris paima visus elementus iš vaisių masyvo. ${…} sintaksė užtikrina, kad kiekvienas elementas būtų traktuojamas kaip atskiras elementas.
- do: Šis raktinis žodis žymi ciklo pagrindo pradžią.
- echo Dabartinis vaisius: $fruit: Ciklo viduje ši eilutė naudoja echo komandą, kad būtų rodoma esama ciklo kintamojo vaisių reikšmė. Kiekvienam masyvo vaisiui išspausdinamas pranešimas, pvz., Dabartinis vaisius: obuolys.
- padaryta: šis raktinis žodis žymi ciklo turinio pabaigą. Jis nurodo scenarijui, kad ciklas baigtas.
už kilpą
12) Parašykite apvalkalo scenarijų, kuris apskaičiuoja sveikųjų skaičių sumą nuo 1 iki N, naudodamas kilpą.
Sukurkite scenarijaus pavadinimą „example.sh“.
#!/bin/bash
echo Įveskite skaičių (N):
skaityti N
suma=0
už (( i=1; i<=$N; i++ )); daryti
suma=$((suma + i))
padaryta
echo Sveikųjų skaičių nuo 1 iki $N suma yra: $sumPaaiškinimas:
Scenarijus pradedamas prašant įvesti skaičių (N) naudojant skaitymą. Šis skaičius nustatys, kiek kartų ciklas bus paleistas.
- Kintamojo suma inicijuojama į 0. Šis kintamasis stebės sveikųjų skaičių sumą.
- Ciklas for prasideda for (( i=1; i<=$N; i++ )). Ši kilpos struktūra naudojama veiksmų rinkiniui pakartoti tam tikrą skaičių kartų, šiuo atveju nuo 1 iki N reikšmės.
- Ciklo viduje vyksta šie dalykai:
- i=1 nustato ciklo kintamąjį i į 1 kiekvienos iteracijos pradžioje.
- Ciklo sąlyga i<=$N patikrina, ar i vis dar yra mažesnis už nurodytą skaičių N arba jam lygus.
- Jei sąlyga teisinga, ciklo korpusas vykdomas.
- suma=$((suma + i)) apskaičiuoja naują sumos reikšmę, pridėdama prie jos dabartinę i reikšmę. Tai sudeda sveikuosius skaičius nuo 1 iki dabartinės i vertės.
- Po kiekvienos iteracijos i++ padidina i reikšmę 1.
- Ciklas tęsiasi tol, kol sąlyga i<=$N tampa klaidinga (kai i tampa didesnė už N).
- Kai ciklas baigiasi, scenarijus rodo sveikųjų skaičių sumą nuo 1 iki įvesto skaičiaus N.
13) Sukurkite scenarijų, kuris faile ieško konkretaus žodžio ir skaičiuoja jo pasireiškimus.
Sukurkite scenarijaus pavadinimą „word_count.sh“.
#!/bin/bash
echo Įveskite žodį, kurio norite ieškoti:
skaityti tikslinį_žodį
echo Įveskite failo pavadinimą:
skaityti failo pavadinimą
count=$(grep -o -w $target_word $failo pavadinimas | wc -l)
echo Žodis „$target_word“ rodomas $count kartų lauke „$failo pavadinimas“.Paaiškinimas:
- echo Įveskite ieškomą žodį:: Šioje eilutėje rodomas pranešimas, kuriame prašoma vartotojo įvesti žodį, kurio nori ieškoti faile.
- read target_word: ši eilutė nuskaito vartotojo pateiktą įvestį ir išsaugo ją kintamajame, pavadintame target_word.
- echo Įveskite failo pavadinimą:: Šioje eilutėje rodomas pranešimas, kuriame prašoma vartotojo įvesti failo, kuriame nori ieškoti, pavadinimą.
- skaityti failo pavadinimą: ši eilutė nuskaito vartotojo pateiktą įvestį ir išsaugo ją kintamajame, pavadintame failo pavadinimu.
- count=$(grep -o -w $target_word $failo pavadinimas | wc -l): ši eilutė atlieka pagrindinį scenarijaus darbą. Išskaidykime jį toliau:
- grep -o -w $target_word $failo pavadinimas: ši komandos dalis ieško tikslinio_žodžio atvejų nurodytame failo pavadinime. Parinktys -o ir -w užtikrina, kad būtų skaičiuojami tik viso žodžio atitikmenys.
- |: Tai vamzdis, kuris paima ankstesnės komandos išvestį ir siunčia ją kaip įvestį kitai komandai.
- wc -l: ši komandos dalis naudoja wc komandą, kad suskaičiuotų eilučių skaičių įvestyje. Parinktis -l konkrečiai skaičiuoja eilutes.
- Visa komanda apskaičiuoja tikslinio_žodžio atvejų skaičių faile ir priskiria tą skaičių kintamajam count
14) Paaiškinkite standartinės išvesties (stdout) ir standartinės klaidos (stderr) skirtumus.
Pagrindinis skirtumas tarp standartinės išvesties (stdout) ir standartinės klaidos (stderr) yra toks:
- Standartinė išvestis (stdout): Tai numatytasis išvesties srautas, į kurį patenka įprasta komandos išvestis. Pagal numatytuosius nustatymus jis rodomas terminale. Galite peradresuoti jį į failą naudodami>.
- Standartinė klaida (stderr): Tai klaidų pranešimų ir įspėjimų išvesties srautas. Pagal numatytuosius nustatymus jis taip pat rodomas terminale. Galite peradresuoti jį į failą naudodami 2>.
15) Paaiškinkite sąlyginių teiginių sampratą apvalkalo scenarijuose.
Sąlyginiai teiginiai apvalkalo scenarijuose leidžia mums priimti sprendimus ir kontroliuoti savo scenarijaus eigą, remiantis tam tikromis sąlygomis. Jie leidžia mūsų scenarijui vykdyti skirtingus komandų rinkinius, priklausomai nuo to, ar tam tikra sąlyga yra teisinga, ar klaidinga. Pirminiai sąlyginiai teiginiai apvalkalo scenarijuose yra if sakinys, elif teiginys (neprivalomas) ir teiginys else (pasirenkamas).
Štai pagrindinė sąlyginio sakinio struktūra apvalkalo scenarijuose:
if [ sąlyga ]; tada
# Komandas vykdyti, jei sąlyga yra teisinga
elif [kita_sąlyga]; tada
# Vykdomos komandos, jei kita_sąlyga teisinga (neprivaloma)
Kitas
# Komandos, kurias reikia vykdyti, jei nė viena iš sąlygų nėra teisinga (neprivaloma)
būtiPaaiškinimas:
- [ sąlyga ] = komanda, kuri įvertina sąlygą ir grąžina teisingą (0) arba klaidingą (ne nulį) išėjimo būseną.
- then = Tai raktinis žodis, nurodantis, kad po jo einančios komandos bus vykdomos, jei sąlyga bus įvertinta kaip tiesa.
- elif = (sutrumpinimas iš else if) Tai skiltis, leidžianti nurodyti papildomas tikrintinas sąlygas.
- else = tai skyrius, kuriame yra komandos, kurios bus vykdomos, jei neįvyks nė viena iš sąlygų.
- fi = Tai raktinis žodis, žymintis sąlyginio bloko pabaigą.
16) Kaip skaitote eilutes iš failo apvalkalo scenarijuje?
Į skaityti eilutes iš failo apvalkalo scenarijuje, galime naudoti įvairius metodus, tačiau vienas įprastas būdas yra naudoti while kilpą kartu su skaitymo komanda. Štai kaip galime tai padaryti:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Patikrinkite, ar failas egzistuoja
if [ -e $failas ]; tada
o IFS = skaityti -r eilutę; daryti
echo Line skaityti: $line
# Čia pridėkite apdorojimo logiką
atlikta <$failas
Kitas
echo Failas nerastas: $file
būtiPaaiškinimas:
- #!/bin/bash: tai shebang eilutė, nurodanti interpretatorių (/bin/bash), kuris bus naudojamas scenarijui paleisti.
- file=/home/jayeshkumar/jayesh.txt: ši eilutė apibrėžia kintamąjį failą ir priskiria visą kelią į failą jayesh.txt, esantį /home/jayeshkumar kataloge. Pakeiskite šį kelią, kad jis atitiktų tikrąjį failo, kurį norite skaityti, kelią.
- if [ -e $failas ]; then: Ši eilutė pradeda teiginį if. Ji patikrina, ar kintamuoju $file nurodytas failas egzistuoja. Vėliava -e tikrina, ar nėra failo.
- o IFS = skaityti -r eilutę; do: ši eilutė inicijuoja ciklą, kuris nuskaito eilutes iš failo.
- IFS=: IFS (vidinio lauko skyriklio) reikšmė nustatyta į tuščią, kad būtų išsaugoti tarpai priekyje ir gale.
- read -r line: nuskaito dabartinę failo eilutę ir išsaugo ją kintamojo eilutėje.
- echo Line read: $line: Ši eilutė spausdina eilutės, kuri buvo nuskaityta iš failo, turinį. Kintamajame $line yra dabartinės eilutės turinys.
- # Pridėkite apdorojimo logiką čia: tai yra rezervuotos vietos komentaras, kuriame galite pridėti savo logiką, kad apdorotumėte kiekvieną eilutę. Pavyzdžiui, galite analizuoti eilutę, išgauti informaciją arba atlikti konkrečius veiksmus pagal turinį.
- done <$file: tai žymi while ciklo pabaigą. Failas < $ nukreipia failo turinį, kurį turi perskaityti ciklas.
- else: jei failas neegzistuoja (sąlyga if sakinyje yra false), scenarijus vykdo kodą pagal else šaką.
- echo Failas nerastas: $failas: ši eilutė spausdina klaidos pranešimą, nurodantį, kad nurodytas failas nerastas.
- fi: ši eilutė žymi if sakinio pabaigą.
skaitymo failas
Čia mes panaudojome ` pwd ` komandą, kad gautumėte dabartinio katalogo kelią.
17) Į apvalkalo scenarijų parašykite funkciją, kuri apskaičiuoja duoto skaičiaus faktorialą.
Štai toks scenarijusapskaičiuokite faktorialątam tikro skaičiaus.
#!/bin/bash
# Apibrėžkite faktorialo skaičiavimo funkciją
skaičiuoti_factorial() {
skaičius = 1 USD
faktas=1
už ((i=1; i<=skaičius; i++)); daryti
faktas=$((faktas *i))
padaryta
aidas $faktas
}
# Paraginkite vartotoją įvesti numerį
echo Įveskite skaičių:
skaityti įvesties_nm
# Iškvieskite funkciją Calculation_factorial su įvesties numeriu
factorial_result=$(apskaičiuoti_factorial $input_num)
# Rodyti faktorinį rezultatą
$input_num echo Factorial yra: $factorial_resultPaaiškinimas:
- Scenarijus prasideda shebang eilute #!/bin/bash, kad būtų nurodytas vertėjas.
- Calculation_factorial() apibrėžiamas kaip funkcija. Reikia vieno argumento, skaičius, kuris yra skaičius, kuriam reikia apskaičiuoti faktorialą.
- Funkcijos viduje faktas inicijuojamas į 1. Šis kintamasis išsaugos faktorinį rezultatą.
- Ciklas for kartojasi nuo 1 iki nurodyto skaičiaus (numerio). Kiekvienoje iteracijoje jis padaugina esamą fakto reikšmę iš ciklo indekso i.
- Kai ciklas bus baigtas, fakto kintamajame yra apskaičiuotas faktorialas.
- Scenarijus ragina vartotoją įvesti skaičių naudojant skaitymą.
- Funkcija Calculation_factorial iškviečiama vartotojo pateiktu skaičiumi, o rezultatas išsaugomas kintamajame factorial_result.
- Galiausiai scenarijus rodo apskaičiuotą faktorinį rezultatą.
Faktorinis
18) Kaip apvalkalo scenarijuje tvarkote tokius signalus kaip Ctrl+C?
Apvalkalo scenarijuje galite tvarkyti tokius signalus kaip Ctrl+C (taip pat žinomas kaip SIGINT), naudodami spąstų komandą. Ctrl+C generuoja SIGINT signalą, kai vartotojas jį paspaudžia, kad nutrauktų vykdomą scenarijų ar programą. Naudodami trap komandą galite nurodyti veiksmus, kurių reikia imtis, kai gaunamas tam tikras signalas. Štai kaip tvarkote tokius signalus kaip Ctrl + C apvalkalo scenarijuje:
#!/bin/bash
Išvalyti() {
echo scenarijus pertrauktas. Atliekamas valymas…
# Čia pridėkite savo valymo veiksmus
išėjimas 1
}
# Nustatykite spąstus, kad iškviestumėte valymo funkciją, kai gaunate Ctrl+C (SIGINT).
spąstų valymas SIGINT
# Likusi jūsų scenarijaus dalis
aidas bėga…
miegoti 10
aidas Baigtas.Signalų tvarkymas yra svarbus norint sukurti patikimus scenarijus ir užtikrinti, kad jie grakščiai elgtųsi su netikėtais trikdžiais. Galite tinkinti valymo funkciją, kad ji atitiktų jūsų konkrečius poreikius, pvz., uždaryti failus, sustabdyti procesus arba įrašyti informaciją prieš baigiant scenarijų.
Paaiškinimas:
- #!/bin/bash: ši shebang eilutė nurodo interpretatorių, kuris bus naudojamas scenarijui paleisti.
- cleanup() { … }: tai apibrėžia funkciją, pavadintą cleanup. Į šią funkciją galite įtraukti bet kokius veiksmus, kuriuos reikia atlikti, kai scenarijus nutrūksta, pvz., uždaryti failus, išleisti išteklius ar atlikti kitas valymo užduotis.
- spąstų valymas SIGINT: spąstų komanda naudojama signalų tvarkytuvui nustatyti. Šiuo atveju nurodoma, kad gavus SIGINT signalą (Ctrl+C), turi būti vykdoma valymo funkcija.
- echo Running…, 10 miego režimas, echo Baigta.: Tai tik pavyzdinės komandos, imituojančios scenarijaus vykdymą.
19) Sukurkite scenarijų, kuris tikrina ir pašalina pasikartojančias eilutes tekstiniame faile.
Čia yra mūsų „Linux“ skriptas, kuriame pašalinsime pasikartojančias eilutes iš tekstinio failo.
#!/bin/bash
input_file=input.txt
output_file=output.txt
rūšiuoti $input_file | unikalus> $išvesties_failas
echo Pasikartojančios eilutės sėkmingai pašalintos.Paaiškinimas:
- Scenarijus prasideda shebang (#!/bin/bash), kuris rodo, kad scenarijus turi būti interpretuojamas naudojant Bash apvalkalą.
- Įvesties_failo kintamasis nustatytas į įvesties failo, kuriame yra pasikartojančių eilučių, pavadinimą (pakeiskite jį į tikrąjį įvesties failo pavadinimą).
- Išvesties_failo kintamasis nustatomas į išvesties failo, iš kurio bus pašalintos dublikatai, pavadinimą (pakeiskite jį į norimą išvesties failo pavadinimą).
- Scenarijus naudoja rūšiavimo komandą eilutėms rūšiuoti įvesties faile. Rūšiuojant eilutes užtikrinama, kad pasikartojančios eilutės bus sugrupuotos.
- Tada surūšiuotos eilutės perduodamos per komandą uniq, kuri pašalina iš eilės pasikartojančias eilutes. Šio proceso išvestis nukreipiama į išvesties failą.
- Pašalinus dublikatus, scenarijus išspausdina sėkmės pranešimą.
pasikartojančios eilutės pašalinimas
Čia mes naudojame ` katė `, kad būtų rodomas tekstas tekstinio failo viduje.
20) Parašykite scenarijų, kuris generuoja saugų atsitiktinį slaptažodį.
Čia yra mūsų scenarijus saugiam atsitiktiniam slaptažodžiui generuoti.
#!/bin/bash
# Funkcija generuoti atsitiktinį slaptažodį
gener_password() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Iškvieskite funkciją ir išsaugokite sugeneruotą slaptažodį
slaptažodis=$(generate_slaptažodį)
echo Sugeneruotas slaptažodis: $passwordPastaba: Vartotojas gali atitinkamai pakeisti slaptažodžio ilgį, pakeisdamas skaičių „12“.
Paaiškinimas:
- Scenarijus prasideda shebang (#!/bin/bash), nurodant, kad jis turėtų būti interpretuojamas naudojant Bash apvalkalą.
- Funkcija generate_password yra apibrėžta atsitiktiniam slaptažodžiui generuoti. Štai kaip tai veikia:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- fold -w 12 suskaido filtruotus atsitiktinius duomenis į 12 simbolių pločio eilutes.
- head -n 1 pasirenka pirmąją eilutę, faktiškai suteikdama atsitiktinę 12 ilgio simbolių seką.
- Slaptažodžio kintamasis priskiriamas funkcijos gener_password iškvietimo rezultatas.
- Galiausiai sugeneruotas slaptažodis rodomas naudojant echo.
21) Parašykite apvalkalo scenarijų, kuris apskaičiuoja bendrą visų failų dydį kataloge.
Čia yra apvalkalo scenarijus, skirtas apskaičiuoti bendrą visų kataloge esančių failų dydį.
#!/bin/bash
katalogas=/kelias/į/jūsų/katalogas
total_size=$(du -csh $katalogas | grep total | awk ‘{print $1}’)
echo Bendras failų dydis $kataloge: $total_sizePaaiškinimas:
- Scenarijus prasideda #!/bin/bash shebang, nurodant, kad jis turėtų būti interpretuojamas naudojant Bash apvalkalą.
- Katalogo kintamasis nustatytas į katalogo, kurio bendrą failo dydį norite apskaičiuoti, kelią. Pakeiskite /path/to/your/directory tikruoju keliu.
- Komanda du naudojama failo vietos naudojimui įvertinti. Naudojamos šios parinktys:
- -c: sukurkite bendrą sumą.
- -s: rodomas tik visas nurodyto katalogo dydis.
- -h: spausdinimo dydžiai žmonėms suprantamu formatu (pvz., KB, MB, GB).
- Du išvestis nukreipiama į grep total, kad būtų išfiltruota eilutė, kurioje yra bendras dydis.
- awk „{print $1}“ naudojamas pirmam laukui (bendras dydis) ištraukti iš eilutės.
- Apskaičiuotas bendras dydis saugomas total_size kintamajame.
- Galiausiai scenarijus rodo bendrą dydį naudojant echo.
Bendras failų dydis
Čia mes panaudojome ` pwd ` komandą, kad pamatytumėte dabartinį katalogo kelią.
22) Paaiškinkite skirtumą tarp if ir elif teiginių apvalkalo scenarijuose.
Funkcija `jei`darbuotojas „Elif“ pareiškimas Tikslas Paaiškinkite skirtumą tarp if ir elif teiginių apvalkalo scenarijuose. Pateikiamos alternatyvios sąlygos patikrinti, kada pradinė sąlyga yra klaidinga. naudojimas Naudotas pradinei būklei. Naudojamas po pradinės būklės, norint patikrinti papildomas sąlygas. blokų skaičius Gali turėti tik vieną if bloką. Gali turėti kelis elifinius blokus, bet tik vieną kitą bloką (neprivaloma). Vykdymas Vykdo kodo bloką, susietą su if sakiniu, jei sąlyga teisinga. Jei sąlyga klaidinga, vykdomas blokas else (jei yra) (neprivaloma). Patikrina kiekvieną elifinę būklę eilės tvarka. Jei viena elif sąlyga yra teisinga, vykdomas atitinkamas kodo blokas, o scenarijus išeina iš viso sąlyginio bloko. Jei nė viena iš elif sąlygų nėra teisinga, įvykdomas else blokas (jei yra). Įdėtos struktūros Gali būti įdėtas į kitus if, elif ar else blokus. Negalima įdėti į kitą elifinį bloką, bet gali būti naudojamas if arba else bloke. Supraskime tai pavyzdžiu.
#!/bin/bash
skaičius = 5
if [ $numeris -gt 10 ]; tada
echo $ skaičius yra didesnis nei 10
Kitas
echo $ skaičius yra ne didesnis nei 10
būti
aidas ---
if [ $numeris -gt 10 ]; tada
echo $ skaičius yra didesnis nei 10
elif [ $numeris -eq 10 ]; tada
echo $ skaičius yra lygus 10
Kitas
echo $ skaičius yra mažesnis nei 10
būtiPaaiškinimas:
Šiame pavyzdyje pirmasis if blokas patikrina, ar skaičius didesnis nei 10. Jei ne, jis išspausdina pranešimą, nurodantį, kad skaičius yra ne didesnis nei 10. Antrasis blokas su elif teiginiais tikrina kelias sąlygas nuosekliai, kol viena iš jų yra teisinga. Šiuo atveju, kadangi skaičiaus reikšmė yra 5, išvestis bus tokia:
if_elif skirtumas
23) Kaip naudoti while kilpą pakartotinai vykdyti komandas?
Nors kilpa naudojama apvalkalo scenarijuose pakartotinai vykdyti komandų rinkinį tol, kol yra teisinga nurodyta sąlyga. Ciklas toliau vykdo komandas, kol sąlyga tampa klaidinga.
Štai pagrindinė while ciklo sintaksė:
while [ sąlyga ]; daryti
# Vykdytinos komandos
padarytaPaaiškinimas:
- Ciklas „while“ prasideda raktiniu žodžiu „while“, po kurio nurodoma sąlyga laužtiniuose skliaustuose „[ ]“.
- Ciklo turinys, kuriame yra vykdomos komandos, yra įtrauktas į raktinius žodžius „do“ ir „done“.
- Kilpa pirmiausia patikrina būklę. Jei sąlyga yra teisinga, komandos yra vykdomos ciklo korpuse. Kai ciklo korpusas vykdomas, sąlyga dar kartą patikrinama ir procesas kartojamas tol, kol sąlyga tampa klaidinga.
Pavyzdys: Jei norime atspausdinti skaičius nuo 1 iki 5
#!/bin/bash
skaitiklis=1
while [ $skaitiklis -le 5 ]; daryti
aido numeris: $skaitiklis
skaitiklis=$((skaitiklis + 1))
padarytaPaaiškinimas:
- Skaitiklio kintamasis nustatytas į 1.
- Ciklas while patikrina, ar skaitiklio reikšmė yra mažesnė arba lygi 5. Kol ši sąlyga yra teisinga, ciklas tęsiamas.
- Ciklo viduje esama skaitiklio reikšmė atspausdinama naudojant aidą.
- Skaitiklis padidinamas 1 naudojant išraišką $((skaitiklis + 1)).
o kilpa
24) Sukurkite apvalkalo scenarijų, kuris suranda ir išvardija visus tuščius failus kataloge.
Apvalkalo scenarijus, kurį galite naudoti norėdami rasti ir išvardyti visus tuščius failus kataloge naudodami komandas „find“ ir „stat“:
#!/bin/bash
katalogas=$1″
if [ -z $katalogas ]; tada
echo Naudojimas: 0 USD
išėjimas 1
būtijei [! -d $katalogas ]; tada
echo Klaida: „$katalogas“ nėra tinkamas katalogas.
išėjimas 1
būti
echo Tušti failai $kataloge:
rasti $katalogas -tipas f -tuščiasPaaiškinimas:
- ` #!/bin/bash `: Tai vadinama shebang ir nurodo operacinei sistemai naudoti Bash apvalkalą, kad interpretuotų ir vykdytų scenarijų.
- ` katalogas=$1″ `: Ši eilutė priskiria pirmąjį komandos eilutės argumentą (žymimą $1) kintamajam ` katalogas `.
- ` if [ -z $katalogas ]; tada `: ši eilutė pradeda sakinį if, kuris patikrina, ar ` katalogas ` kintamasis tuščias (-z tikrina tuščią eilutę).
- ` echo Naudojimas: 0 USD `: Jei katalogas tuščias, ši eilutė spausdina naudojimo pranešimą, kur ` 0 USD ` reiškia scenarijaus pavadinimą.
- ` išėjimas 1 `: ši eilutė išeina iš scenarijaus su išėjimo kodu ` 1 ', nurodant klaidą.
- ` būti `: ši eilutė žymi ` pabaigą jeigu `pareiškimas.
- ` jei [! -d $katalogas ]; tada `: Paleidžiamas kitas if sakinys, skirtas patikrinti, ar pateiktas katalogas egzistuoja (` -d ` katalogo testai).
- ` echo Klaida: „$katalogas“ nėra tinkamas katalogas. `: jei pateikto katalogo nėra, ši eilutė išspausdina klaidos pranešimą.
- ` išėjimas 1 `: išeina iš scenarijaus su išėjimo kodu ` 1 `.
- ` būti `: pažymi antrojo pabaigą jeigu` pareiškimas.
- ` echo Tušti failai $kataloge: `: Jei iki šiol viskas galioja, ši eilutė išspausdina pranešimą, nurodantį, kad scenarijus nurodys tuščius failus nurodytame kataloge.
- ` rasti $katalogas -tipas f -tuščias `: šioje eilutėje naudojamas ` rasti ` komanda tuščių failų paieškai (` -tuščia `) tipo įprasti failai (` - tipas f `) nurodytame kataloge. Tada išvardija šiuos tuščius failus.
Rasti tuščius failus
Pastaba : Vykdydami scenarijų turime pateikti katalogą kaip argumentą. Čia mes panaudojome dabartinio katalogo home/jayeshkumar/ kelią
25) Koks yra skaitymo komandos tikslas apvalkalo scenarijuose?
Nuskaitymo komanda apvalkalo scenarijuose leidžia scenarijui paprašyti jūsų informacijos. Tai panašu į tai, kai kompiuteris užduoda klausimą ir laukia atsakymo. Tai naudinga scenarijams, kuriems reikia ką nors įvesti, arba kai scenarijus turi dirbti su informacija iš failų. Skaitymo komanda padeda scenarijui sustoti ir laukti, ką įvesite, o tada ji gali naudoti tą informaciją, kad atliktų daugiau scenarijaus veiksmų.
Skaitymo komandos sintaksė:
read variable_name>Pavyzdys : Jei norime naudoti vardą kaip vartotojo įvestį, kad jį spausdintume.
#!/bin/bash
echo Įveskite savo vardą:
skaityti vardą
echo Sveiki, $name!skaityti nam
Apibendrinant galima pasakyti, kad skaitymo komanda naudojama norint užfiksuoti vartotojo įvestį arba duomenis iš failų apvalkalo scenarijuose, todėl scenarijai tampa interaktyvesni ir universalesni.
26) Parašykite apvalkalo scenarijų, kuris konvertuoja visus katalogo failų pavadinimus į mažąsias raides.
Čia yra apvalkalo scenarijus, kuris konvertuoja visus katalogo failų pavadinimus į mažąsias raides.
#!/bin/bash
katalogas=$1″
if [ -z $katalogas ]; tada
echo Naudojimas: 0 USD
išėjimas 1
būtijei [! -d $katalogas ]; tada
echo Klaida: „$katalogas“ nėra tinkamas katalogas.
išėjimas 1
būticd $katalogas || išėjimas 1
* *; daryti
if [ -f $failas ]; tada
newname=$(echo $file | tr ‘A-Z’ ‘a-z’)
[ $failas != $naujasvardas ] && mv $failas $naujasvardas
būti
padarytaPaaiškinimas:
- #!/bin/bash : Tai shebang, nurodantis, kad scenarijus turi būti interpretuojamas naudojant Bash apvalkalą.
- katalogas=$1″ : Ši eilutė priskiria pirmąjį komandinės eilutės argumentą kintamųjų katalogui.
- if [ -z $katalogas ]; tada : Ši eilutė patikrina, ar katalogo kintamasis tuščias (vykdant scenarijų nepateikiamas argumentas).
- echo Naudojimas: 0 USD : Jei katalogas tuščias, šioje eilutėje išspausdinamas naudojimo pranešimas su scenarijaus pavadinimu ($0).
- išėjimas 1 : Ši eilutė išeina iš scenarijaus su išėjimo kodu 1, o tai rodo, kad įvyko klaida.
- f i: tai žymi pirmojo if sakinio pabaigą.
- jei [! -d $katalogas ]; tada : Ši eilutė patikrina, ar nurodyto katalogo nėra (-d tikrina katalogą).
- echo Klaida: „$katalogas“ nėra tinkamas katalogas. : Jei nurodyto katalogo nėra, ši eilutė išspausdina klaidos pranešimą.
- išėjimas 1 : išeina iš scenarijaus, kurio išėjimo kodas yra 1.
- būti : pažymi antrojo if sakinio pabaigą.
- cd $katalogas || išėjimas 1 : pakeičia esamą darbo katalogą į nurodytą katalogą. Jei nepavyksta pakeisti katalogo (pvz., katalogo nėra), scenarijus išeina su klaidos kodu.
- * *; daryti: aš * *; daryti: inicijuoja ciklą, kuris kartojasi per visus elementus dabartiniame kataloge (* atitinka visus failų pavadinimus).
- if [ -f $failas ]; tada : patikrina, ar dabartinis ciklo iteracijos elementas yra įprastas failas (-f tikrina įprastą failą).
- newname=$(echo $file | tr ‘A-Z’ ‘a-z’) : konvertuoja dabartinį failo pavadinimą ($failas) į mažąsias raides naudojant komandą tr ir išsaugo rezultatą naujo pavadinimo kintamajame.
- [ $failas != $naujasvardas ] && mv $failas $naujasvardas : palygina pradinį failo pavadinimą su nauju mažosiomis raidėmis. Jei jie skiriasi, failas pervadinamas naudojant komandą mv.
- būti : pažymi vidinio if teiginio pabaigą.
- padaryta : pažymi ciklo pabaigą.
Pastaba : Vykdydami scenarijų turime pateikti katalogą kaip argumentą. Čia mes panaudojome dabartinio katalogo home/jayeshkumar/test kelią
27) Kaip galite naudoti aritmetines operacijas apvalkalo scenarijuje?
Aritmetines operacijas galima atlikti apvalkalo scenarijuje, naudojant įvairius integruotus metodus. Apvalkalas suteikia paprastų aritmetinių skaičiavimų, naudojant aritmetinį išplėtimą, mechanizmus, pavyzdžiui:
- Aritmetinis išplėtimas ($((…)))
- Naudojant komandą expr
- Naudojant let Command
Štai mūsų „Shell“ scenarijus, paaiškinantis visus tris aritmetinių operacijų metodus.
#!/bin/bash
skaičius1 = 10
skaičius2 = 5#Aritmetinis išplėtimas ($((…)))
rezultatas=$((1 skaičius + 2 skaičius))
echo Suma: $ rezultatas#Naudojant expr komandą
suma=$(išs. $num1 + $num2)
echo Suma: $ suma#Naudodami leiskite komandą
tegul suma = skaičius1 + skaičius2
echo Suma: $ sumaPaaiškinimas:
- „#!/bin/bash“. : Tai shebang, nurodantis, kad scenarijus turi būti interpretuojamas naudojant Bash apvalkalą.
- „skaičius1=10“. ir ` skaičius2 = 5` : Šios eilutės kintamiesiems ` priskiria reikšmes 10 ir 5 skaičius1 ` ir ` skaičius2 ', atitinkamai.
- „#Aritmetinis išplėtimas ($((…)))“. : Tai komentaras, nurodantis aritmetinį išplėtimą demonstruojančios sekcijos pradžią.
- „rezultatas=$((1 skaičius + 2 skaičius))“. : Ši eilutė naudoja aritmetinį išplėtimą, kad apskaičiuotų ` sumą skaičius1 ` ir ` skaičius2 “ ir išsaugo rezultatą „ rezultatas ` kintamasis.
- „Echo Sum“: $rezultatas : Šioje eilutėje spausdinama apskaičiuota suma naudojant reikšmę, saugomą ` rezultatas ` kintamasis.
- „#Naudojant komandą expr“. : Tai yra komentaras, nurodantis skyriaus, kuriame demonstruojamas ` naudojimas, pradžią expr ` komanda aritmetinėms operacijoms.
- `suma=$(ekspr $num1 + $num2)' : Šioje eilutėje naudojamas ` expr ` komanda, skirta apskaičiuoti ` sumą skaičius1 ` ir ` skaičius2 “ ir išsaugo rezultatą „ suma ` kintamasis. Atkreipkite dėmesį, kad ` expr ` komandai reikia tarpų aplink operatorius.
- `echo Sum: $sum` : Šioje eilutėje spausdinama apskaičiuota suma naudojant reikšmę, saugomą ` suma ` kintamasis.
- „#Naudojant let Command“. : Tai yra komentaras, nurodantis skyriaus, kuriame demonstruojamas ` naudojimas, pradžią leisti ` komanda aritmetinėms operacijoms.
- „tegul suma = skaičius1 + skaičius2“. : Šioje eilutėje naudojamas ` leisti ` komanda, skirta apskaičiuoti ` sumą skaičius1 ` ir ` skaičius2 “ ir priskiria rezultatą „ suma ` kintamasis. ` leisti ` komandai nereikia tarpų aplink operatorius.
- `echo Sum: $sum` : Šioje eilutėje spausdinama apskaičiuota suma naudojant reikšmę, saugomą ` suma ` kintamasis.
aritmetika
28) Sukurkite scenarijų, kuris patikrintų, ar tinklo priegloba pasiekiama.
Štai paprastas apvalkalo scenarijus, kuris naudoja ping komandą, kad patikrintų, ar tinklo priegloba pasiekiama:
#!/bin/bash
priegloba = 1 USD
if [ -z $host ]; tada
echo Naudojimas: 0 USD
išėjimas 1
būti
ping -c 4 $host
jei [ $? -eq 0]; tada
echo $host pasiekiamas.
Kitas
echo $host nepasiekiamas.
būtiPaaiškinimas:
- Jis naudoja pagrindinio kompiuterio pavadinimą arba IP adresą kaip argumentą ir patikrina, ar argumentas pateiktas.
- Jei argumentas nepateikiamas, rodomas naudojimo pranešimas ir išeina.
- Jis naudoja ping komandą su -c 4 parinktimi, kad išsiųstų keturias ICMP aido užklausas nurodytam kompiuteriui.
- Paleidus ping komandą, ji patikrina išėjimo būseną ($?). Jei išėjimo būsena yra 0, tai reiškia, kad priegloba pasiekiama ir scenarijus išspausdina sėkmės pranešimą. Kitu atveju bus išspausdintas gedimo pranešimas.
Pastaba : Vykdydami scenarijų turime pateikti pagrindinio kompiuterio pavadinimą kaip argumentą. Čia mes naudojome google.com
29) Parašykite apvalkalo scenarijų, kad surastumėte didžiausią elementą masyve:
Čia yra apvalkalo scenarijus, skirtas rasti didžiausią masyvo elementą.
#!/bin/bash
# Paskelbkite masyvą
masyvas=(3 56 24 89 67)# Inicijuokite kintamąjį, kad išsaugotumėte didžiausią reikšmę, pradedant nuo pirmojo elemento
max=${masyvas[0]}
# Pakartokite per masyvą
už num in ${array[@]}; daryti
# Palyginkite kiekvieną elementą su esamu maksimumu
if ((skaičius> max)); tada
max = $num
būti
padaryta# Spausdinkite didžiausią vertę
echo Maksimalus masyvo elementas yra: $max
Paaiškinimas:
- ` #!/bin/bash `: eilutėje shebang nurodoma, kad scenarijus turi būti interpretuojamas naudojant Bash apvalkalą.
- ` masyvas=(3 56 24 89 67) `: Masyvas deklaruojamas ir inicijuojamas reikšmėmis.
- ` max=${masyvas[0]} `: „max“ inicijuojamas pirmuoju masyvo elementu.
- ` už num in ${masyvas[@]}; daryti `: ciklas 'for' naudojamas kartoti masyvo elementus.
- ` if ((skaičius> max)); tada `: teiginys „if“ patikrina, ar dabartinis elementas „num“ yra didesnis nei dabartinis maksimalus „max“.
- ` max=$sum.: If`num „yra didesnis nei „max“, „max“ atnaujinamas num reikšme.
- ` padaryta `: 'už' kilpa uždaryta.
- ` echo Maksimalus masyvo elementas yra: $max `: Galiausiai scenarijus išspausdina didžiausią masyve rastą reikšmę.
didžiausias skaičius
30) Parašykite scenarijų, kaip apskaičiuoti masyvo elementų sumą.
#!/bin/bash
# Paskelbkite masyvą
masyvas=(1 65 22 19 94)
# Inicijuokite kintamąjį, kad išsaugotumėte sumą
suma=0
# Pakartokite masyvą ir pridėkite kiekvieną elementą prie sumos
už num in ${masyvas[@]}; daryti
am=$((am + am))
padaryta# Spausdinkite sumą
echo Elementų suma masyve yra: $sum
Paaiškinimas:
` #!/bin/bash `: eilutėje shebang nurodoma, kad scenarijus turi būti interpretuojamas naudojant Bash apvalkalą.
` masyvas=(1 65 22 19 94) `: Masyvas deklaruojamas ir inicijuojamas reikšmėmis.
` suma=0 `:` suma ` inicijuojamas iki nulio, kad būtų išlaikyta elementų suma.
` už num in ${masyvas[@]}; daryti ': A' dėl ` ciklas naudojamas kartoti masyvo elementus.
` am=$((am + am)) `: Ciklo viduje kiekvienas elementas ` ant vieno „“ pridedamas prie „ suma ` kintamasis.
` padaryta `: ` dėl ` kilpa uždaryta.
`echo Elementų suma masyve yra: $sum`: Galiausiai scenarijus išspausdina visų masyvo elementų sumą.
Elementų suma
Sužinokite daugiau apie „Shell“ scenarijus
- Skirtumas tarp apvalkalo ir branduolio
- Skirtumas tarp Bind Shell ir Reverse Shell
- „Linux Shell“ ir „Shell Scripting“ įvadas
Išvada
Mes visi žinome, kad apvalkalo scenarijus yra labai naudingas siekiant padidinti darbo našumą ir sutaupyti laiko. Taigi, šiame straipsnyje mes apžvelgėme 30 labai naudingų ir labiausiai „conman“ apvalkalo scenarijų pavyzdžių . Tikimės, kad šis išsamus apvalkalo scenarijų pavyzdys padės jums suprasti viską apie apvalkalo scenarijus.


















