Visiem Linux izplatījumiem čaulas skripts ir kā burvju nūjiņa, kas automatizē procesu, ietaupa lietotāju laiku un palielina produktivitāti. Šī skriptēšanas apmācība iepazīstinās jūs ar 25 plus skriptu piemēriem.
Bet pirms mēs pārejam pie tēmas čaulas skriptēšana piemērus, sapratīsim čaulas skriptu un čaulas skriptu faktiskos lietošanas gadījumus.
Kas ir Shell skripts?
Nu, apvalks ir a CLI ( komandrindas tulks ), kas darbojas teksta logā, kurā lietotāji var pārvaldīt un izpildīt čaulas komandas. No otras puses, Linux sistēmā izpildāmo komandu kopas rakstīšanas process. Fails, kas ietver šādas instrukcijas, tiek saukts par bash skriptu.
Shell skriptu lietojumi
Tālāk ir norādīti daži bieži sastopami Shell skripta lietojumi:
- Uzdevumu automatizācija - To var izmantot, lai automatizētu atkārtotus uzdevumus, piemēram, regulārus dublējumus un programmatūras instalēšanas uzdevumus.
- Pielāgošana - Var izmantot čaulas skriptus, lai izstrādātu komandrindas vidi un viegli veiktu uzdevumu atbilstoši vajadzībām.
- Failu pārvaldība - Apvalka skriptus var izmantot arī, lai pārvaldītu un manipulētu ar failiem un direktorijiem, piemēram, failu pārvietošanai, kopēšanai, pārdēvēšanai vai dzēšanai.
Shell skriptu piemēri operētājsistēmā Linux
1) Ko norāda shebang (#!) čaulas skripta sākumā?
The shebang (#!) skripta sākumā norāda tulku, kas jāizmanto skripta izpildei. Tas norāda sistēmai, kuram apvalkam vai tulkam jāinterpretē skripta komandas.
Piemēram: Pieņemsim, ka mums ir skripts ar nosaukumu myscript.sh rakstīts Bash čaulā:
klēpjdatora ievietošanas atslēga

Shebang
Šajā piemērā:
- #!/bin/bash skripta sākumā norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
- Echo komandas tiek izmantotas, lai drukātu ziņojumus uz termināli.
2) Kā palaist čaulas skriptu no komandrindas?
Lai palaistu čaulas skriptu no komandrindas, mums ir jāveic šādas darbības:
- Pārliecinieties, vai skripta failam ir izpildāmās atļaujas, izmantojot chmod komanda :
chmod +x myscript.sh>
- Izpildiet skriptu, izmantojot tā faila nosaukumu:
./myscript.sh>
Šeit jums ir jāaizstāj myscript.sh ar savu skripta nosaukumu.
3) Uzrakstiet čaulas skriptu, kas terminālī izdrukā techcodeview.com.
Izveidojiet skripta nosaukumu `myscript.sh` (mēs izmantojam ` jo ` redaktors, jūs varat izvēlēties jebkuru redaktoru)
vim myscript.sh>
#!/bin/bash
# Šis skripts terminālī izdrukā techcodeview.com
echo techcodeview.com

drukas nosaukums
Mēs padarām savu skriptu izpildāmu, izmantojot `chmod +x`, pēc tam izpildām ar `./myscipt.sh` un iegūstam vēlamo izvadi techcodeview.com.
4) Izskaidrojiet echo komandas mērķi čaulas skriptēšanā.
The atbalss komanda tiek izmantots, lai terminālī parādītu tekstu vai mainīgos. To parasti izmanto ziņojumu, mainīgo vērtību drukāšanai un programmas izvades ģenerēšanai.

atbalss komanda
Šajā piemērā mēs esam tieši izpildījuši 'echo' terminālī, jo tā darbojas tāpat čaulas skriptā.
5) Kā čaulas skriptā mainīgajam var piešķirt vērtību?
Mainīgajiem tiek piešķirtas vērtības, izmantojot piešķiršanas operatoru =.
Piemēram:
#!/bin/bash
# Vērtības piešķiršana mainīgajam
vārds = Džeišs
vecums = 21
atbalss $name $vecums
Paskaidrojums:
- Nosaukuma mainīgajam ir piešķirta vērtība Jayesh.
- Vecuma mainīgajam tiek piešķirta vērtība 21.
- echo tiek izmantots drukāšanai, un `$name` `$age` tiek izmantots, lai izsauktu mainīgajos saglabāto vērtību.
6) Uzrakstiet čaulas skriptu, kas izmanto lietotāja vārdu un sveicina viņu.
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
# Jautājiet lietotājam viņa vārdu
echo Kā tevi sauc?
lasīt vārdu
# Sveiciniet lietotāju
echo Sveiks, $name! Prieks iepazīties.
Paskaidrojums:
- #!/bin/bash: šī ir shebang līnija. Tas liek sistēmai izmantot Bash tulku, lai izpildītu skriptu.
- # Pajautājiet lietotājam viņa vārdu: Šis ir komentārs. Tas nodrošina kontekstu par gaidāmo kodu. Tulks komentārus ignorē.
- echo Kāds ir jūsu vārds?: Echo komanda tiek izmantota, lai terminālī parādītu tekstu dubultpēdiņās.
- lasīšanas nosaukums: lasīšanas komanda gaida, līdz lietotājs ievadīs tekstu, un saglabā to mainīgā nosaukumā.
- echo Sveiks, $name! Prieks iepazīties.: šajā rindā tiek izmantota komanda echo, lai izdrukātu sveiciena ziņojumu, kurā ir iekļauta nosaukuma mainīgā vērtība, kas tika savākta no lietotāja ievades.
7) Kā čaulas skriptam pievieno komentārus?
Komentāri čaulas skriptēšanā tiek izmantoti, lai sniegtu koda paskaidrojumus vai kontekstu. Tulks tos ignorē, un tie ir paredzēti tikai cilvēkiem, kas lasa skriptu. Varat pievienot komentārus, izmantojot simbolu #.
#!/bin/bash
# Šis ir komentārs, kas izskaidro skripta mērķi
echo gfg
8) Izveidojiet čaulas skriptu, kas pārbauda, vai fails pastāv pašreizējā direktorijā.
Šis ir skripts, kas pārbauda, vai pašreizējā direktorijā pastāv fails ar nosaukumu example.txt:
#!/bin/bash
file=example.txt
# Pārbaudiet, vai fails pastāv
if [ -e $fails ]; tad
echo Fails pastāv: $file
cits
echo Fails nav atrasts: $file
būt
Paskaidrojums:
- #!/bin/bash: šī ir shebang rinda, kas norāda tulku (/bin/bash), kas jāizmanto skripta palaišanai.
- file=example.txt: šī rinda definē mainīgo failu un piešķir tam vērtību example.txt. Varat to aizstāt ar tā faila nosaukumu, kuru vēlaties pārbaudīt.
- if [ -e $fails ]; then: šī rindiņa sāk if paziņojumu. Nosacījums [ -e $file] pārbauda, vai fails, kas norādīts ar faila mainīgā vērtību, pastāv. Karodziņu -e izmanto, lai pārbaudītu faila esamību.
- echo Fails pastāv: $file: ja nosacījums ir patiess (t.i., fails eksistē), šajā rindā tiek izdrukāts ziņojums, kas norāda, ka fails eksistē, kopā ar faila nosaukumu.
- else: ja nosacījums ir nepatiess (t.i., fails neeksistē), skripts izpilda kodu zem zara else.
- echo Fails nav atrasts: $file: šajā rindā tiek izdrukāts kļūdas ziņojums, kas norāda, ka norādītais fails nav atrasts, kā arī faila nosaukums.
- fi: šī rinda iezīmē if priekšraksta beigas.

Faila atrašana
9) Kāda ir atšķirība starp vienpēdiņām (') un dubultpēdiņām () čaulas skriptēšanā?
Vienpēdiņas (') un dubultpēdas () tiek izmantotas, lai iekļautu virknes čaulas skriptos, taču tām ir atšķirīga darbība:
- Atsevišķas pēdiņas: viss, kas atrodas starp pēdiņām, tiek uzskatīts par burtisku virkni. Mainīgo nosaukumi un lielākā daļa īpašo rakstzīmju netiek izvērsti.
- Dubultās pēdiņas: tiek izvērsti mainīgie un noteiktas speciālās rakstzīmes dubultpēdiņās. Saturs ir pakļauts mainīgai aizstāšanai un komandu aizstāšanai.
#!/bin/bash
abcd=Sveiki
echo ‘$abcd’ # Izvade: $abcd
echo $abcd # Izvade: Sveiki
10) Kā čaulas skriptā var izmantot komandrindas argumentus?
Komandrindas argumenti ir vērtības, kas tiek nodrošinātas skriptam, kad tas tiek izpildīts. Tiem var piekļūt skriptā, izmantojot īpašus mainīgos, piemēram, , utt., kur apzīmē pirmo argumentu, apzīmē otro argumentu un tā tālāk.
Piemēram: Ja mūsu skripta nosaukums ir “example.sh”.
#!/bin/bash
echo Skripta nosaukums:
Visiem Linux izplatījumiem čaulas skripts ir kā burvju nūjiņa, kas automatizē procesu, ietaupa lietotāju laiku un palielina produktivitāti. Šī skriptēšanas apmācība iepazīstinās jūs ar 25 plus skriptu piemēriem.
Bet pirms mēs pārejam pie tēmas čaulas skriptēšana piemērus, sapratīsim čaulas skriptu un čaulas skriptu faktiskos lietošanas gadījumus.
Kas ir Shell skripts?
Nu, apvalks ir a CLI ( komandrindas tulks ), kas darbojas teksta logā, kurā lietotāji var pārvaldīt un izpildīt čaulas komandas. No otras puses, Linux sistēmā izpildāmo komandu kopas rakstīšanas process. Fails, kas ietver šādas instrukcijas, tiek saukts par bash skriptu.
Shell skriptu lietojumi
Tālāk ir norādīti daži bieži sastopami Shell skripta lietojumi:
- Uzdevumu automatizācija - To var izmantot, lai automatizētu atkārtotus uzdevumus, piemēram, regulārus dublējumus un programmatūras instalēšanas uzdevumus.
- Pielāgošana - Var izmantot čaulas skriptus, lai izstrādātu komandrindas vidi un viegli veiktu uzdevumu atbilstoši vajadzībām.
- Failu pārvaldība - Apvalka skriptus var izmantot arī, lai pārvaldītu un manipulētu ar failiem un direktorijiem, piemēram, failu pārvietošanai, kopēšanai, pārdēvēšanai vai dzēšanai.
Shell skriptu piemēri operētājsistēmā Linux
1) Ko norāda shebang (#!) čaulas skripta sākumā?
The shebang (#!) skripta sākumā norāda tulku, kas jāizmanto skripta izpildei. Tas norāda sistēmai, kuram apvalkam vai tulkam jāinterpretē skripta komandas.
Piemēram: Pieņemsim, ka mums ir skripts ar nosaukumu myscript.sh rakstīts Bash čaulā:
Shebang
Šajā piemērā:
- #!/bin/bash skripta sākumā norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
- Echo komandas tiek izmantotas, lai drukātu ziņojumus uz termināli.
2) Kā palaist čaulas skriptu no komandrindas?
Lai palaistu čaulas skriptu no komandrindas, mums ir jāveic šādas darbības:
- Pārliecinieties, vai skripta failam ir izpildāmās atļaujas, izmantojot chmod komanda :
chmod +x myscript.sh>
- Izpildiet skriptu, izmantojot tā faila nosaukumu:
./myscript.sh>Šeit jums ir jāaizstāj myscript.sh ar savu skripta nosaukumu.
3) Uzrakstiet čaulas skriptu, kas terminālī izdrukā techcodeview.com.
Izveidojiet skripta nosaukumu `myscript.sh` (mēs izmantojam ` jo ` redaktors, jūs varat izvēlēties jebkuru redaktoru)
vim myscript.sh>#!/bin/bash
# Šis skripts terminālī izdrukā techcodeview.com
echo techcodeview.comdrukas nosaukums
Mēs padarām savu skriptu izpildāmu, izmantojot `chmod +x`, pēc tam izpildām ar `./myscipt.sh` un iegūstam vēlamo izvadi techcodeview.com.
4) Izskaidrojiet echo komandas mērķi čaulas skriptēšanā.
The atbalss komanda tiek izmantots, lai terminālī parādītu tekstu vai mainīgos. To parasti izmanto ziņojumu, mainīgo vērtību drukāšanai un programmas izvades ģenerēšanai.
atbalss komanda
Šajā piemērā mēs esam tieši izpildījuši 'echo' terminālī, jo tā darbojas tāpat čaulas skriptā.
5) Kā čaulas skriptā mainīgajam var piešķirt vērtību?
Mainīgajiem tiek piešķirtas vērtības, izmantojot piešķiršanas operatoru =.
Piemēram:
#!/bin/bash
# Vērtības piešķiršana mainīgajam
vārds = Džeišs
vecums = 21
atbalss $name $vecumsPaskaidrojums:
- Nosaukuma mainīgajam ir piešķirta vērtība Jayesh.
- Vecuma mainīgajam tiek piešķirta vērtība 21.
- echo tiek izmantots drukāšanai, un `$name` `$age` tiek izmantots, lai izsauktu mainīgajos saglabāto vērtību.
6) Uzrakstiet čaulas skriptu, kas izmanto lietotāja vārdu un sveicina viņu.
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
# Jautājiet lietotājam viņa vārdu
echo Kā tevi sauc?
lasīt vārdu
# Sveiciniet lietotāju
echo Sveiks, $name! Prieks iepazīties.Paskaidrojums:
- #!/bin/bash: šī ir shebang līnija. Tas liek sistēmai izmantot Bash tulku, lai izpildītu skriptu.
- # Pajautājiet lietotājam viņa vārdu: Šis ir komentārs. Tas nodrošina kontekstu par gaidāmo kodu. Tulks komentārus ignorē.
- echo Kāds ir jūsu vārds?: Echo komanda tiek izmantota, lai terminālī parādītu tekstu dubultpēdiņās.
- lasīšanas nosaukums: lasīšanas komanda gaida, līdz lietotājs ievadīs tekstu, un saglabā to mainīgā nosaukumā.
- echo Sveiks, $name! Prieks iepazīties.: šajā rindā tiek izmantota komanda echo, lai izdrukātu sveiciena ziņojumu, kurā ir iekļauta nosaukuma mainīgā vērtība, kas tika savākta no lietotāja ievades.
7) Kā čaulas skriptam pievieno komentārus?
Komentāri čaulas skriptēšanā tiek izmantoti, lai sniegtu koda paskaidrojumus vai kontekstu. Tulks tos ignorē, un tie ir paredzēti tikai cilvēkiem, kas lasa skriptu. Varat pievienot komentārus, izmantojot simbolu #.
#!/bin/bash
# Šis ir komentārs, kas izskaidro skripta mērķi
echo gfg8) Izveidojiet čaulas skriptu, kas pārbauda, vai fails pastāv pašreizējā direktorijā.
Šis ir skripts, kas pārbauda, vai pašreizējā direktorijā pastāv fails ar nosaukumu example.txt:
#!/bin/bash
file=example.txt
# Pārbaudiet, vai fails pastāv
if [ -e $fails ]; tad
echo Fails pastāv: $file
cits
echo Fails nav atrasts: $file
būtPaskaidrojums:
- #!/bin/bash: šī ir shebang rinda, kas norāda tulku (/bin/bash), kas jāizmanto skripta palaišanai.
- file=example.txt: šī rinda definē mainīgo failu un piešķir tam vērtību example.txt. Varat to aizstāt ar tā faila nosaukumu, kuru vēlaties pārbaudīt.
- if [ -e $fails ]; then: šī rindiņa sāk if paziņojumu. Nosacījums [ -e $file] pārbauda, vai fails, kas norādīts ar faila mainīgā vērtību, pastāv. Karodziņu -e izmanto, lai pārbaudītu faila esamību.
- echo Fails pastāv: $file: ja nosacījums ir patiess (t.i., fails eksistē), šajā rindā tiek izdrukāts ziņojums, kas norāda, ka fails eksistē, kopā ar faila nosaukumu.
- else: ja nosacījums ir nepatiess (t.i., fails neeksistē), skripts izpilda kodu zem zara else.
- echo Fails nav atrasts: $file: šajā rindā tiek izdrukāts kļūdas ziņojums, kas norāda, ka norādītais fails nav atrasts, kā arī faila nosaukums.
- fi: šī rinda iezīmē if priekšraksta beigas.
Faila atrašana
9) Kāda ir atšķirība starp vienpēdiņām (') un dubultpēdiņām () čaulas skriptēšanā?
Vienpēdiņas (') un dubultpēdas () tiek izmantotas, lai iekļautu virknes čaulas skriptos, taču tām ir atšķirīga darbība:
- Atsevišķas pēdiņas: viss, kas atrodas starp pēdiņām, tiek uzskatīts par burtisku virkni. Mainīgo nosaukumi un lielākā daļa īpašo rakstzīmju netiek izvērsti.
- Dubultās pēdiņas: tiek izvērsti mainīgie un noteiktas speciālās rakstzīmes dubultpēdiņās. Saturs ir pakļauts mainīgai aizstāšanai un komandu aizstāšanai.
#!/bin/bash
abcd=Sveiki
echo ‘$abcd’ # Izvade: $abcd
echo $abcd # Izvade: Sveiki10) Kā čaulas skriptā var izmantot komandrindas argumentus?
Komandrindas argumenti ir vērtības, kas tiek nodrošinātas skriptam, kad tas tiek izpildīts. Tiem var piekļūt skriptā, izmantojot īpašus mainīgos, piemēram, $1, $2 utt., kur $1 apzīmē pirmo argumentu, $2 apzīmē otro argumentu un tā tālāk.
Piemēram: Ja mūsu skripta nosaukums ir “example.sh”.
#!/bin/bash
echo Skripta nosaukums: $0
echo Pirmais arguments: $1
echo Otrais arguments: $2Ja palaižam skriptu ar `.example.sh hello_1 hello_2`, tas izvadīs:
cli argumenti
11) Kā izmantot cilpu for, lai atkārtotu vērtību sarakstu?
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
augļi = (ābolu banānu ķiršu datums)
augļiem ${fruits[@]}; darīt
echo Pašreizējais auglis: $auglis
darītsPaskaidrojums:
Rinda `fruits=` izveido masīvu ar nosaukumu augļi ar četriem elementiem: ābols, banāns, ķirsis un datums.
- augļiem ${fruits[@]}; do: šī rinda sāk for cilpu. Lūk, ko nozīmē katra daļa:
- augļiem: tas deklarē cilpas mainīgo, ko sauc par augļiem. Katrā cilpas iterācijā augļi saglabās pašreizējā augļu masīva elementa vērtību.
- ${fruits[@]}: šis ir masīva paplašinājums, kas paņem visus augļu masīva elementus. ${…} sintakse nodrošina, ka katrs elements tiek uzskatīts par atsevišķu vienumu.
- do: šis atslēgvārds iezīmē cilpas pamatteksta sākumu.
- echo Pašreizējais auglis: $fruit: cilpas iekšpusē šī rinda izmanto echo komandu, lai parādītu cilpas mainīgā augļa pašreizējo vērtību. Tas izdrukā ziņojumu, piemēram, Pašreizējais auglis: ābols katram auglim masīvā.
- darīts: šis atslēgvārds apzīmē cilpas pamatteksta beigas. Tas norāda skriptam, ka cilpa ir pabeigta.
cilpai
12) Uzrakstiet čaulas skriptu, kas aprēķina veselu skaitļu summu no 1 līdz N, izmantojot cilpu.
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
echo Ievadiet skaitli (N):
lasīt N
summa=0
for ((i=1; i<=$N; i++ )); darīt
summa=$((summa + i))
darīts
echo Veselu skaitļu summa no 1 līdz $N ir: $sumPaskaidrojums:
Skripts sākas ar lūgumu ievadīt skaitli (N), izmantojot lasīšanu. Šis skaitlis noteiks, cik reižu cilpa darbojas.
- Mainīgā summa tiek inicializēta uz 0. Šis mainīgais sekos veselu skaitļu summai.
- For cilpa sākas ar for (( i=1; i<=$N; i++ )). Šo cilpas struktūru izmanto, lai noteiktu darbību kopu atkārtotu noteiktu skaitu reižu, šajā gadījumā no 1 līdz N vērtībai.
- Cilpas ietvaros notiek šādas lietas:
- i=1 iestata cilpas mainīgo i uz 1 katras iterācijas sākumā.
- Cilpas nosacījums i<=$N pārbauda, vai i joprojām ir mazāks vai vienāds ar doto skaitli N.
- Ja nosacījums ir patiess, tiek izpildīts cilpas pamatteksts.
- summa=$((summa + i)) aprēķina summas jauno vērtību, pievienojot tai pašreizējo i vērtību. Tas saskaita veselus skaitļus no 1 līdz pašreizējai i vērtībai.
- Pēc katras iterācijas i++ palielina i vērtību par 1.
- Cilpa turpina darboties, līdz nosacījums i<=$N kļūst nepatiess (kad i kļūst lielāks par N).
- Kad cilpa ir pabeigta, skripts parāda veselu skaitļu summu no 1 līdz ievadītajam skaitlim N.
13) Izveidojiet skriptu, kas meklē konkrētu vārdu failā un skaita tā gadījumus.
Izveidojiet skripta nosaukumu vārdu_skaits.sh
#!/bin/bash
echo Ievadiet meklējamo vārdu:
lasīt mērķa_vārdu
echo Ievadiet faila nosaukumu:
lasīt faila nosaukumu
count=$(grep -o -w $mērķa_vārds $faila nosaukums | wc -l)
echo Vārds '$target_word' tiek parādīts $count reizes failā '$filename'.Paskaidrojums:
- atbalss Ievadiet meklējamo vārdu:: Šajā rindā tiek parādīts ziņojums, kurā lietotājam tiek lūgts failā ievadīt vārdu, kuru viņš vēlas meklēt.
- lasīt mērķa_vārdu: šī rinda nolasa lietotāja sniegto ievadi un saglabā to mainīgajā ar nosaukumu target_word.
- echo Ievadiet faila nosaukumu:: Šajā rindā tiek parādīts ziņojums, kurā lietotājam tiek lūgts ievadīt faila nosaukumu, kurā viņš vēlas meklēt.
- lasīt faila nosaukumu: šī rinda nolasa lietotāja sniegto ievadi un saglabā to mainīgajā ar nosaukumu faila nosaukums.
- count=$(grep -o -w $ mērķa_vārds $ faila nosaukums | wc -l): šī rinda veic galveno skripta darbu. Sadalīsim to sīkāk:
- grep -o -w $mērķa_vārds $faila nosaukums: šī komandas daļa meklē mērķa_vārda gadījumus norādītajā faila nosaukumā. Opcijas -o un -w nodrošina, ka tiek skaitītas tikai veselu vārdu atbilstības.
- |: Šī ir caurule, kas ņem iepriekšējās komandas izvadi un nosūta to kā ievadi nākamajai komandai.
- wc -l: šī komandas daļa izmanto wc komandu, lai saskaitītu rindu skaitu ievadē. Opcija -l īpaši saskaita rindas.
- Visa komanda aprēķina mērķa_vārda gadījumu skaitu failā un piešķir to skaitu mainīgajam count
14) Izskaidrojiet atšķirības starp standarta izvadi (stdout) un standarta kļūdu (stderr).
Galvenā atšķirība starp standarta izvadi (stdout) un standarta kļūdu (stderr) ir šāda:
- Standarta izvade (stdout): Šī ir noklusējuma izvades straume, uz kuru tiek nosūtīta komandas parastā izvade. Pēc noklusējuma tas tiek parādīts terminālī. Varat to novirzīt uz failu, izmantojot>.
- Standarta kļūda (stderr): Šī ir kļūdu ziņojumu un brīdinājumu izvades plūsma. Tas tiek parādīts arī terminālī pēc noklusējuma. Varat to novirzīt uz failu, izmantojot 2>.
15) Izskaidrojiet nosacījumu priekšrakstu jēdzienu čaulas skriptēšanā.
Nosacītie paziņojumi čaulas skriptēšanā ļauj mums pieņemt lēmumus un kontrolēt mūsu skripta plūsmu, pamatojoties uz noteiktiem nosacījumiem. Tie ļauj mūsu skriptam izpildīt dažādas komandu kopas atkarībā no tā, vai konkrētais nosacījums ir patiess vai nepatiess. Galvenie nosacījuma priekšraksti čaulas skriptēšanā ir priekšraksts if, priekšraksts elif (neobligāts) un priekšraksts else (neobligāts).
Tālāk ir norādīta nosacījuma priekšraksta pamatstruktūra čaulas skriptēšanā:
ja [nosacījums]; tad
# Komandas, kas jāizpilda, ja nosacījums ir patiess
elif [cits_nosacījums]; tad
# Komandas, kas jāizpilda, ja other_condition ir patiess (neobligāti)
cits
# Komandas, kas jāizpilda, ja neviens no nosacījumiem nav patiess (neobligāti)
būtPaskaidrojums:
- [ nosacījums ] = komanda, kas novērtē nosacījumu un atgriež patiesu (0) vai nepatiesu (kas nav nulle) izejas statusu.
- then = Tas ir atslēgvārds, kas norāda, ka tam sekojošās komandas tiks izpildītas, ja nosacījums tiks novērtēts kā patiess.
- elif = (saīsinājums no else if) Tā ir sadaļa, kas ļauj norādīt papildu nosacījumus, ko pārbaudīt.
- else = tā ir sadaļa, kurā ir komandas, kuras tiks izpildītas, ja neviens no nosacījumiem nav patiess.
- fi = Tas ir atslēgvārds, kas iezīmē nosacījumu bloka beigas.
16) Kā čaulas skriptā nolasāt rindiņas no faila?
Uz lasīt rindas no faila čaulas skriptā, mēs varam izmantot dažādas metodes, taču viena izplatīta pieeja ir izmantot while cilpu kopā ar lasīšanas komandu. Lūk, kā mēs to varam izdarīt:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Pārbaudiet, vai fails pastāv
if [ -e $fails ]; tad
kamēr IFS= lasīt -r līniju; darīt
echo Line lasāma: $line
# Šeit pievienojiet savu apstrādes loģiku
pabeigts <$file
cits
echo Fails nav atrasts: $file
būtPaskaidrojums:
- #!/bin/bash: šī ir shebang rinda, kas norāda tulku (/bin/bash), kas jāizmanto skripta palaišanai.
- file=/home/jayeshkumar/jayesh.txt: šī rinda definē mainīgo failu un piešķir pilnu ceļu failam jayesh.txt direktorijā /home/jayeshkumar. Mainiet šo ceļu, lai tas atbilstu tā faila faktiskajam ceļam, kuru vēlaties lasīt.
- if [ -e $fails ]; then: šī rindiņa sāk if paziņojumu. Tā pārbauda, vai pastāv mainīgā $file norādītais fails. Karogs -e pārbauda faila esamību.
- kamēr IFS= lasīt -r līniju; do: šī rindiņa uzsāk kamēr cilpu, kas nolasa rindas no faila.
- IFS=: IFS (iekšējais lauka atdalītājs) ir iestatīts uz tukšu vērtību, lai saglabātu sākuma un beigu atstarpes.
- read -r line: šī nolasa pašreizējo rindiņu no faila un saglabā to mainīgā rindā.
- echo Line read: $line: šī rinda drukā tās rindas saturu, kas tika nolasīta no faila. Mainīgais $line satur pašreizējās rindas saturu.
- # Pievienojiet savu apstrādes loģiku šeit: Šis ir viettura komentārs, kurā varat pievienot savu loģiku, lai apstrādātu katru rindiņu. Piemēram, varat analizēt līniju, iegūt informāciju vai veikt noteiktas darbības, pamatojoties uz saturu.
- done <$file: tas iezīmē while cilpas beigas. <$fails novirza faila saturu, kas jālasa cilpai.
- else: ja fails neeksistē (nosacījums if paziņojumā ir nepatiess), skripts izpilda kodu sadaļā else.
- echo Fails nav atrasts: $file: Šajā rindā tiek izdrukāts kļūdas ziņojums, kas norāda, ka norādītais fails nav atrasts.
- fi: šī rinda iezīmē if priekšraksta beigas.
lasīšanas fails
Šeit mēs izmantojām ` pwd ` komandu, lai iegūtu pašreizējā direktorija ceļu.
17) Uzrakstiet čaulas skriptā funkciju, kas aprēķina dotā skaitļa faktoriālu.
Šeit ir skripts, kasaprēķināt faktoriāluno dotā numura.
#!/bin/bash
# Definējiet funkciju faktoriāla aprēķināšanai
aprēķināt_faktoriāls() {
skaits = 1 ASV dolārs
fakts=1
for ((i=1; i<=num; i++)); darīt
fakts=$((fakts * i))
darīts
atbalss $fakts
}
# Lūdziet lietotājam ievadīt numuru
echo Ievadiet numuru:
lasīt ievades_numurs
# Izsauciet funkciju Calculation_factorial ar ievades numuru
factorial_result=$(aprēķināt_faktoriālu $input_num)
# Parādīt koeficientu rezultātu
$input_num echo Faktoriāls ir: $factorial_resultPaskaidrojums:
- Skripts sākas ar shebang rindiņu #!/bin/bash, lai norādītu tulku.
- Calculation_factorial() ir definēts kā funkcija. Tam nepieciešams viens arguments, num, kas ir skaitlis, kuram jāaprēķina faktoriāls.
- Funkcijā fakts tiek inicializēts uz 1. Šis mainīgais saglabās faktoriālo rezultātu.
- For cilpa atkārtojas no 1 līdz norādītajam skaitlim (num). Katrā iterācijā tas reizina fakta pašreizējo vērtību ar cilpas indeksu i.
- Kad cilpa ir pabeigta, faktu mainīgais satur aprēķināto faktoriālu.
- Skripts liek lietotājam ievadīt numuru, izmantojot lasīšanu.
- Funkcija Calculation_factorial tiek izsaukta ar lietotāja norādīto numuru, un rezultāts tiek saglabāts mainīgajā factorial_result.
- Visbeidzot, skripts parāda aprēķināto faktoru rezultātu.
Faktoriāls
18) Kā čaulas skriptā apstrādājat tādus signālus kā Ctrl+C?
Apvalka skriptā varat apstrādāt tādus signālus kā Ctrl+C (pazīstams arī kā SIGINT), izmantojot komandu trap. Ctrl+C ģenerē SIGINT signālu, kad lietotājs to nospiež, lai pārtrauktu darbojošos skriptu vai programmu. Izmantojot trap komandu, varat norādīt darbības, kas jāveic, kad tiek saņemts konkrēts signāls. Tālāk ir norādīts, kā čaulas skriptā apstrādājat tādus signālus kā Ctrl+C.
#!/bin/bash
satīrīt() {
echo Script pārtraukts. Notiek tīrīšana…
# Šeit pievienojiet tīrīšanas darbības
izeja 1
}
# Iestatiet slazdu, lai izsauktu tīrīšanas funkciju, kad tiek saņemts Ctrl+C (SIGINT).
lamatas tīrīšana SIGINT
# Pārējais jūsu skripts
atbalss darbojas…
gulēt 10
atbalss Pabeigts.Signālu apstrāde ir svarīga, lai padarītu skriptus stabilus un nodrošinātu, ka tie graciozi izturas pret negaidītiem pārtraukumiem. Varat pielāgot tīrīšanas funkciju, lai tā atbilstu jūsu īpašajām vajadzībām, piemēram, aizvērt failus, apturēt procesus vai reģistrēt informāciju pirms skripta iziešanas.
Paskaidrojums:
- #!/bin/bash: šī shebang rinda norāda tulku, kas jāizmanto skripta palaišanai.
- cleanup() { … }: tas definē funkciju ar nosaukumu cleanup. Šajā funkcijā varat iekļaut visas darbības, kas jāveic, kad skripts tiek pārtraukts, piemēram, failu aizvēršana, resursu atbrīvošana vai citu tīrīšanas uzdevumu veikšana.
- Trap tīrīšana SIGINT: Trap komanda tiek izmantota, lai iestatītu signālu apstrādātāju. Šajā gadījumā tas norāda, ka, saņemot SIGINT signālu (Ctrl+C), ir jāizpilda tīrīšanas funkcija.
- echo Darbojas…, miega režīms 10, echo Pabeigts.: šīs ir tikai komandu paraugi, lai simulētu skripta izpildi.
19) Izveidojiet skriptu, kas pārbauda un noņem teksta faila rindiņu dublikātus.
Šeit ir mūsu Linux scipt, kurā mēs noņemsim dublētās rindas no teksta faila.
#!/bin/bash
input_file=input.txt
output_file=output.txt
kārtot $input_file | uniq> $izejas_fails
echo Dublētas līnijas ir veiksmīgi noņemtas.Paskaidrojums:
- Skripts sākas ar shebang (#!/bin/bash), kas norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
- Mainīgais ievades_fails ir iestatīts uz tā ievades faila nosaukumu, kurā ir rindiņu dublikāti (mainiet to uz faktisko ievades faila nosaukumu).
- Mainīgais output_file ir iestatīts uz tā izvades faila nosaukumu, kurā tiks noņemti dublikāti (mainiet to uz vēlamo izvades faila nosaukumu).
- Skripts izmanto kārtošanas komandu, lai kārtotu ievades faila rindas. Līniju kārtošana nodrošina dublēto rindu sagrupēšanu.
- Pēc tam sakārtotās rindas tiek nodotas komandai uniq, kas noņem secīgas dublētās rindas. Šī procesa izvade tiek novirzīta uz izvades failu.
- Pēc dublikātu noņemšanas skripts izdrukā veiksmes ziņojumu.
dublikāta rindas noņemšana
Šeit mēs izmantojam ` kaķis ` lai parādītu tekstu teksta failā.
20) Uzrakstiet skriptu, kas ģenerē drošu nejaušu paroli.
Šeit ir mūsu skripts drošas nejaušas paroles ģenerēšanai.
#!/bin/bash
# Funkcija, lai ģenerētu nejaušu paroli
gener_password() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Izsauciet funkciju un saglabājiet ģenerēto paroli
parole=$(ģenerēt_paroli)
echo Ģenerētā parole: $passwordPiezīme: Lietotājs var attiecīgi mainīt tur paroles garumu, aizstājot skaitli `12`.
Paskaidrojums:
- Skripts sākas ar shebang (#!/bin/bash), kas norāda, ka tas jāinterpretē, izmantojot Bash apvalku.
- Funkcija generate_password ir definēta, lai ģenerētu nejaušu paroli. Lūk, kā tas darbojas:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- fold -w 12 sadala filtrētos nejaušos datus rindās, kuru platums ir 12 rakstzīmes.
- Head -n 1 atlasa pirmo rindiņu, faktiski dodot mums nejaušu rakstzīmju secību, kuras garums ir 12.
- Paroles mainīgajam tiek piešķirts funkcijas generate_password izsaukšanas rezultāts.
- Visbeidzot, ģenerētā parole tiek parādīta, izmantojot echo.
21) Uzrakstiet čaulas skriptu, kas aprēķina visu direktorijā esošo failu kopējo lielumu.
Šeit ir čaulas skripts, lai aprēķinātu visu direktorijā esošo failu kopējo lielumu.
#!/bin/bash
directory=/ceļš/uz/jūsu/direktoriju
total_size=$(du -csh $directory | grep total | awk ‘{print $1}’)
echo Kopējais failu lielums $direktorijā: $total_sizePaskaidrojums:
- Skripts sākas ar #!/bin/bash shebang, norādot, ka tas jāinterpretē, izmantojot Bash apvalku.
- Direktorija mainīgais ir iestatīts uz tā direktorija ceļu, kuram vēlaties aprēķināt kopējo faila lielumu. Aizstāt /path/to/your/directory ar faktisko ceļu.
- Komanda du tiek izmantota, lai novērtētu faila vietas izmantošanu. Izmantotās iespējas ir:
- -c: izveidojiet kopējo summu.
- -s: parāda tikai norādītā direktorija kopējo izmēru.
- -h: drukas izmēri cilvēkiem lasāmā formātā (piemēram, KB, MB, GB).
- Du izvade tiek nosūtīta uz grep total, lai filtrētu rindu, kurā ir kopējais izmērs.
- awk “{print $1}” tiek izmantots, lai no rindas izvilktu pirmo lauku (kopējo izmēru).
- Aprēķinātais kopējais izmērs tiek saglabāts mainīgajā total_size.
- Visbeidzot, skripts parāda kopējo izmēru, izmantojot atbalsi.
Kopējais failu lielums
Šeit mēs izmantojām ` pwd ` komandu, lai redzētu pašreizējo direktorijas ceļu.
22) Izskaidrojiet atšķirību starp if un elif paziņojumiem čaulas skriptēšanā.
Funkcija `ja`Staiftement `elif` Paziņojums Mērķis Izskaidrojiet atšķirību starp if un elif priekšrakstiem čaulas skriptēšanā. Nodrošina alternatīvus nosacījumus, lai pārbaudītu, kad sākotnējais nosacījums ir nepatiess. lietojums Lietots sākotnējam stāvoklim. Izmanto pēc sākotnējā if nosacījuma, lai pārbaudītu papildu nosacījumus. bloku skaits Var būt tikai viens ja bloks. Var būt vairāki elif bloki, bet tikai viens cits bloks (pēc izvēles). Izpilde Izpilda koda bloku, kas saistīts ar priekšrakstu if, ja nosacījums ir patiess. Ja nosacījums ir nepatiess, tiek izpildīts cits bloks (ja tāds ir) (neobligāti). Pārbauda katru elif stāvokli kārtībā. Ja viens elif nosacījums ir patiess, tiek izpildīts atbilstošais koda bloks, un skripts iziet no visa nosacījuma bloka. Ja neviens no elif nosacījumiem nav patiess, tiek izpildīts else bloks (ja tāds ir). Ligzdotas struktūras Var ligzdot citos if, elif vai else blokos. Nevar ligzdot citā elif blokā, bet var izmantot if vai else blokā. Sapratīsim to ar piemēru.
#!/bin/bash
skaitlis=5
ja [ $skaitlis -gt 10 ]; tad
echo $skaitlis ir lielāks par 10
cits
echo $skaitlis nav lielāks par 10
būt
atbalss ———
ja [ $skaitlis -gt 10 ]; tad
echo $skaitlis ir lielāks par 10
elif [ $skaitlis -eq 10 ]; tad
echo $skaitlis ir vienāds ar 10
cits
echo $skaitlis ir mazāks par 10
būtPaskaidrojums:
Šajā piemērā pirmais if bloks pārbauda, vai skaitlis ir lielāks par 10. Ja nē, tas izdrukā ziņojumu, kas norāda, ka skaitlis nav lielāks par 10. Otrais bloks ar elif priekšrakstiem pārbauda vairākus nosacījumus secīgi, līdz viens no tiem ir patiess. Šajā gadījumā, tā kā skaitļa vērtība ir 5, izvade būs:
if_elif atšķirība
23) Kā izmantot cilpu while, lai atkārtoti izpildītu komandas?
Shell skriptēšanā tiek izmantota while cilpa, lai atkārtoti izpildītu komandu kopu, ja vien norādītais nosacījums ir patiess. Cilpa turpina izpildīt komandas, līdz nosacījums kļūst nepatiess.
Lūk, kāda laika cilpas pamata sintakse:
kamēr [nosacījums]; darīt
# Komandas, kas jāizpilda
darītsPaskaidrojums:
- Cilpa 'while' sākas ar atslēgvārdu 'while', kam seko nosacījums kvadrātiekavās '[ ]'.
- Cilpas pamatteksts, kurā ir izpildāmās komandas, ir ietverts atslēgvārdos 'do' un 'done'.
- Cilpa vispirms pārbauda stāvokli. Ja nosacījums ir patiess, tiek izpildītas komandas cilpas pamattekstā. Kad cilpas pamatteksts ir izpildīts, nosacījums tiek pārbaudīts vēlreiz, un process atkārtojas, līdz nosacījums kļūst nepatiess.
Piemērs: Ja vēlamies izdrukāt skaitļus no 1 līdz 5
#!/bin/bash
skaitītājs=1
while [ $counter -le 5 ]; darīt
atbalss Skaitlis: $skaitītājs
skaitītājs=$((skaitītājs + 1))
darītsPaskaidrojums:
- Skaitītāja mainīgais ir iestatīts uz 1.
- Cikla while pārbauda, vai skaitītāja vērtība ir mazāka vai vienāda ar 5. Kamēr šis nosacījums ir patiess, cilpa turpina izpildīt.
- Cilpas iekšpusē pašreizējā skaitītāja vērtība tiek izdrukāta, izmantojot atbalsi.
- Skaitītājs tiek palielināts par 1, izmantojot izteiksmi $((skaitītājs + 1)).
kamēr cilpa
24) Izveidojiet čaulas skriptu, kas atrod un uzskaita visus tukšos failus direktorijā.
Shell skripts, ko varat izmantot, lai atrastu un uzskaitītu visus tukšos failus direktorijā, izmantojot komandas 'find' un 'stat':
#!/bin/bash
directory=$1″
ja [ -z $direktorijs ]; tad
echo Lietojums: 0 USD
izeja 1
būtja [ ! -d $direktorijs ]; tad
echo Kļūda: “$ directory” nav derīgs direktorijs.
izeja 1
būt
echo Tukši faili $ direktorijā:
atrodiet $ directory -type f -tukšuPaskaidrojums:
- ` #!/bin/bash `: To sauc par shebang, un tas liek operētājsistēmai izmantot Bash apvalku, lai interpretētu un izpildītu skriptu.
- ` directory=$1″ `: šī rinda piešķir pirmo komandrindas argumentu (apzīmēts ar $1) mainīgajam ` direktoriju `.
- ` ja [ -z $direktorijs ]; tad `: šī rinda sāk if priekšrakstu, kas pārbauda, vai ` direktoriju ` mainīgais ir tukšs (-z pārbauda tukšu virkni).
- ` echo Lietojums: 0 USD `: ja direktorijs ir tukšs, šajā rindā tiek izdrukāts lietošanas ziņojums, kur ` 0 $ ` apzīmē skripta nosaukumu.
- ` izeja 1 `: šī rinda iziet no skripta ar izejas kodu ` 1 `, kas norāda uz kļūdu.
- ` būt `: šī rinda iezīmē ` beigas ja ` paziņojums.
- ` ja [ ! -d $direktorijs ]; tad `: Tas sāk citu if priekšrakstu, lai pārbaudītu, vai norādītais direktorijs eksistē (` -d ` pārbauda direktoriju).
- ` echo Kļūda: “$ directory” nav derīgs direktorijs. `: ja norādītais direktorijs neeksistē, šī rinda izdrukā kļūdas ziņojumu.
- ` izeja 1 `: iziet no skripta ar izejas kodu ` 1 `.
- ` būt `: atzīmē otrās beigas ja` paziņojums, apgalvojums.
- ` echo Tukši faili $ direktorijā: `: Ja viss līdz šim ir derīgs, šajā rindā tiek izdrukāts ziņojums, kas norāda, ka skripts norādītajā direktorijā uzskaitīs tukšus failus.
- ` atrodiet $ directory -type f -tukšu `: šajā rindā tiek izmantots ` atrast ` komandu, lai meklētu tukšus failus (` - tukšs `) parastie faili (` - tipa f `) norādītajā direktorijā. Pēc tam tiek uzskaitīti šie tukšie faili.
Tukšu failu atrašana
Piezīme : mums ir jānorāda direktorijs kā arguments, izpildot skriptu. Šeit mēs esam izmantojuši pašreizējā direktorija home/jayeshkumar/ ceļu
25) Kāds ir lasīšanas komandas mērķis čaulas skriptēšanā?
Lasīšanas komanda čaulas skriptēšanā ļauj skriptam lūgt jums informāciju. Tas ir tāpat kā tad, kad dators uzdod jums jautājumu un gaida jūsu atbildi. Tas ir noderīgi skriptiem, kuros kaut kas jāievada, vai gadījumos, kad skriptam ir jāstrādā ar informāciju no failiem. Lasīšanas komanda palīdz skriptam apstāties un gaidīt, ko rakstāt, un pēc tam tā var izmantot šo informāciju, lai skriptā veiktu vairāk darbību.
Lasīšanas komandas sintakse:
read variable_name>Piemērs : Ja mēs vēlamies lietot vārdu kā ievadi no lietotāja, lai to izdrukātu.
#!/bin/bash
echo Lūdzu, ievadiet savu vārdu:
lasīt vārdu
echo Sveiks, $name!lasīt nam
Rezumējot, lasīšanas komanda tiek izmantota, lai tvertu lietotāja ievadi vai datus no failiem čaulas skriptos, padarot skriptus interaktīvākus un daudzpusīgākus.
26) Uzrakstiet čaulas skriptu, kas pārvērš visus direktorijā esošo failu nosaukumus uz mazajiem burtiem.
Šeit ir čaulas skripts, kas pārvērš visus direktorijā esošo failu nosaukumus uz mazajiem burtiem.
#!/bin/bash
directory=$1″
ja [ -z $direktorijs ]; tad
echo Lietojums: 0 USD
izeja 1
būtja [ ! -d $direktorijs ]; tad
echo Kļūda: “$ directory” nav derīgs direktorijs.
izeja 1
būtcd $direktorijs || izeja 1
failam *; darīt
if [ -f $fails ]; tad
newname=$(echo $file | tr ‘A-Z’ ‘a-z’)
[ $file != $newname ] && mv $fails $jaunsaukums
būt
darītsPaskaidrojums:
- #!/bin/bash : Šis ir shebang, kas norāda, ka skripts ir jāinterpretē, izmantojot Bash apvalku.
- directory=$1″ : šī rinda piešķir pirmo komandrindas argumentu mainīgo direktorijam.
- ja [ -z $direktorijs ]; tad : šī rinda pārbauda, vai direktorija mainīgais ir tukšs (palaižot skriptu, nav norādīts arguments).
- echo Lietojums: 0 USD : ja direktorijs ir tukšs, šajā rindā tiek izdrukāts lietošanas ziņojums ar skripta nosaukumu ($0).
- izeja 1 : šī rindiņa iziet no skripta ar izejas kodu 1, norādot, ka ir radusies kļūda.
- f i: tas iezīmē pirmā if paziņojuma beigas.
- ja [ ! -d $direktorijs ]; tad : šī rinda pārbauda, vai norādītais direktorijs neeksistē (-d pārbauda direktoriju).
- echo Kļūda: “$ directory” nav derīgs direktorijs. : ja norādītais direktorijs nepastāv, šī rinda izdrukā kļūdas ziņojumu.
- izeja 1 : iziet no skripta ar izejas kodu 1.
- būt : atzīmē otrā if paziņojuma beigas.
- cd $direktorijs || izeja 1 : maina pašreizējo darba direktoriju uz norādīto direktoriju. Ja direktorija maiņa neizdodas (piem., neesošs direktorijs), skripts tiek izvadīts ar kļūdas kodu.
- failam *; darīt: es failam *; darīt: izveido cilpu, kas atkārtojas pār visiem pašreizējā direktorija vienumiem (* atbilst visiem failu nosaukumiem).
- if [ -f $fails ]; tad : pārbauda, vai pašreizējās cilpas iterācijas vienums ir parasts fails (-f pārbauda parastu failu).
- newname=$(echo $file | tr ‘A-Z’ ‘a-z’) : pārvērš pašreizējo faila nosaukumu ($file) par mazajiem burtiem, izmantojot komandu tr, un saglabā rezultātu mainīgajā newname.
- [ $file != $newname ] && mv $fails $jaunsaukums : salīdzina sākotnējo faila nosaukumu ar jauno faila nosaukumu ar mazajiem burtiem. Ja tie atšķiras, tas pārdēvē failu, izmantojot komandu mv.
- būt : atzīmē iekšējā if paziņojuma beigas.
- darīts : atzīmē cilpas beigas.
Piezīme : mums ir jānorāda direktorijs kā arguments, izpildot skriptu. Šeit mēs esam izmantojuši pašreizējā direktorija home/jayeshkumar/test ceļu
27) Kā čaulas skriptā var izmantot aritmētiskās darbības?
Aritmētiskās darbības var veikt čaulas skriptā, izmantojot dažādas iebūvētās metodes. Apvalks nodrošina mehānismus vienkāršiem aritmētiskiem aprēķiniem, izmantojot aritmētisko izvēršanu, piemēram:
- Aritmētiskā izvēršana ($((…)))
- Izmantojot komandu expr
- Izmantojot Let Command
Šeit ir mūsu Shell skripts, kas izskaidro visas trīs aritmētisko darbību metodes.
#!/bin/bash
num1=10
num2=5#Aritmētiskā izvēršana ($((…)))
rezultāts=$((num1 + num2))
atbalss Summa: $rezultāts#Izmantojot komandu expr
summa=$(ekspr $num1 + $num2)
atbalss Summa: $ summa#Izmantojot Let Command
lai summa = num1 + num2
atbalss Summa: $ summaPaskaidrojums:
- #!/bin/bash : Šis ir shebang, kas norāda, ka skripts ir jāinterpretē, izmantojot Bash apvalku.
- `num1=10` un ` cipars2=5` : šīs rindas piešķir mainīgajiem ` vērtības 10 un 5 num1 ` un ` num2 `, attiecīgi.
- `#Aritmētiskā izvēršana ($((…)))` : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta aritmētiskā izvēršana.
- `rezultāts=$((num1 + num2))' : šajā rindā tiek izmantota aritmētiskā izvēršana, lai aprēķinātu ` summu num1 ` un ` num2 ` un saglabā rezultātu mapē ` rezultāts ` mainīgais.
- `atbalss Summa: $rezultāts` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` rezultāts ` mainīgais.
- #Izmantojot komandu expr : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta ` ekspr ` komanda aritmētiskām darbībām.
- `sum=$(ekspr $num1 + $num2)` : šajā rindā tiek izmantots ` ekspr ` komandu, lai aprēķinātu ` summu num1 ` un ` num2 ` un saglabā rezultātu mapē ` summa ` mainīgais. Ņemiet vērā, ka ` ekspr ` komanda prasa atstarpes ap operatoriem.
- `echo Sum: $sum` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` summa ` mainīgais.
- `#Izmantojot Let Command` : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta ` ļaut ` komanda aritmētiskām darbībām.
- 'atļaut summu = num1 + num2'. : šajā rindā tiek izmantots ` ļaut ` komandu, lai aprēķinātu ` summu num1 ` un ` num2 ` un piešķir rezultātu ` summa ` mainīgais. ` ļaut ` komanda neprasa atstarpes ap operatoriem.
- `echo Sum: $sum` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` summa ` mainīgais.
aritmētika
28) Izveidojiet skriptu, kas pārbauda, vai tīkla resursdators ir sasniedzams.
Šeit ir vienkāršs čaulas skripts, kas izmanto ping komandu, lai pārbaudītu, vai tīkla resursdators ir sasniedzams:
#!/bin/bash
saimniekdators = 1 $
ja [ -z $host ]; tad
echo Lietojums: 0 USD
izeja 1
būt
ping -c 4 $host
ja [ $? -ekv 0]; tad
echo $host ir sasniedzams.
cits
echo $host nav sasniedzams.
būtPaskaidrojums:
- Tas izmanto resursdatora nosaukumu vai IP adresi kā argumentu un pārbauda, vai arguments ir sniegts.
- Ja nav norādīts neviens arguments, tas parāda lietošanas ziņojumu un iziet.
- Tas izmanto ping komandu ar opciju -c 4, lai nosūtītu četrus ICMP atbalss pieprasījumus norādītajam resursdatoram.
- Pēc ping komandas palaišanas tā pārbauda izejas statusu ($?). Ja izejas statuss ir 0, tas nozīmē, ka resursdators ir sasniedzams un skripts izdrukā veiksmes ziņojumu. Pretējā gadījumā tas izdrukā kļūdas ziņojumu.
Piezīme : mums ir jānorāda saimniekdatora nosaukums kā arguments, palaižot skriptu. Šeit mēs esam izmantojuši google.com
29) Uzrakstiet čaulas skriptu, lai atrastu lielāko masīva elementu:
Šeit ir čaulas skripts, lai atrastu lielāko elementu masīvā.
#!/bin/bash
# Deklarējiet masīvu
masīvs=(3 56 24 89 67)# Inicializējiet mainīgo, lai saglabātu maksimālo vērtību, sākot ar pirmo elementu
max=${masīvs[0]}
# Atkārtojiet caur masīvu
par num in ${array[@]}; darīt
# Salīdziniet katru elementu ar pašreizējo maksimumu
if ((skaits> max)); tad
max=$num
būt
darīts# Drukājiet maksimālo vērtību
echo Maksimālais elements masīvā ir: $max
Paskaidrojums:
- ` #!/bin/bash `: līnija shebang norāda, ka skripts ir jāinterpretē, izmantojot Bash čaulu.
- ` masīvs=(3 56 24 89 67) `: masīvs tiek deklarēts un inicializēts ar vērtībām.
- ` max=${masīvs[0]} `: “max” tiek inicializēts ar pirmo masīva elementu.
- ` par num in ${masīvs[@]}; darīt `: cilpa 'for' tiek izmantota, lai atkārtotu masīva elementus.
- ` if ((skaits> max)); tad `: paziņojums “if” pārbauda, vai pašreizējais elements “num” ir lielāks par pašreizējo maksimālo “max”.
- ` max=$num`: If`num “ir lielāks par “max”, “max” tiek atjaunināts ar vērtību num.
- ` darīts `: “for” cilpa ir aizvērta.
- ` echo Maksimālais elements masīvā ir: $max `: Visbeidzot, skripts izdrukā maksimālo masīvā atrasto vērtību.
lielākais skaitlis
30) Uzrakstiet skriptu, lai aprēķinātu masīva elementu summu.
#!/bin/bash
# Deklarējiet masīvu
masīvs=(1 65 22 19 94)
# Inicializējiet mainīgo, lai saglabātu summu
summa=0
# Atkārtojiet masīvu un pievienojiet katru elementu summai
par num in ${array[@]}; darīt
am=$((am + am))
darīts# Izdrukājiet summu
echo Elementu summa masīvā ir: $summa
Paskaidrojums:
` #!/bin/bash `: līnija shebang norāda, ka skripts ir jāinterpretē, izmantojot Bash čaulu.
` masīvs=(1 65 22 19 94) `: masīvs tiek deklarēts un inicializēts ar vērtībām.
` summa=0 `:` summa ` tiek inicializēts uz nulli, lai saglabātu elementu summu.
` par num in ${masīvs[@]}; darīt `: A ` priekš ` cilpa tiek izmantota, lai atkārtotu masīva elementus.
` am=$((am + am)) `: cilpas iekšpusē katrs elements ` uz viena ` tiek pievienots ` summa ` mainīgais.
` darīts `: ` priekš ` cilpa ir aizvērta.
`echo Elementu summa masīvā ir: $sum`: Visbeidzot, skripts izdrukā visu masīva elementu summu.
Elementu summa
Uzziniet vairāk par Shell skriptiem
- Atšķirība starp apvalku un kodolu
- Atšķirība starp Bind Shell un Reverse Shell
- Ievads Linux Shell un Shell skriptēšanā
Secinājums
Mēs visi gudrinieki zinām, ka čaulas skripts ir ļoti noderīgs, lai palielinātu darba produktivitāti, kā arī ietaupītu laiku. Tātad, šajā rakstā mēs esam aplūkojuši 30 ļoti noderīgi un visvairāk conman čaulas skriptu piemēri . Mēs ceram, ka šī pilnīga rokasgrāmata par čaulas skriptu piemēru palīdzēs jums saprast visu par čaulas skriptiem.
echo Pirmais arguments:
echo Otrais arguments:
Ja palaižam skriptu ar `.example.sh hello_1 hello_2`, tas izvadīs:

cli argumenti
11) Kā izmantot cilpu for, lai atkārtotu vērtību sarakstu?
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
augļi = (ābolu banānu ķiršu datums)
augļiem ${fruits[@]}; darīt
echo Pašreizējais auglis: $auglis
darīts
Paskaidrojums:
Rinda `fruits=` izveido masīvu ar nosaukumu augļi ar četriem elementiem: ābols, banāns, ķirsis un datums.
- augļiem ${fruits[@]}; do: šī rinda sāk for cilpu. Lūk, ko nozīmē katra daļa:
- augļiem: tas deklarē cilpas mainīgo, ko sauc par augļiem. Katrā cilpas iterācijā augļi saglabās pašreizējā augļu masīva elementa vērtību.
- ${fruits[@]}: šis ir masīva paplašinājums, kas paņem visus augļu masīva elementus. ${…} sintakse nodrošina, ka katrs elements tiek uzskatīts par atsevišķu vienumu.
- do: šis atslēgvārds iezīmē cilpas pamatteksta sākumu.
- echo Pašreizējais auglis: $fruit: cilpas iekšpusē šī rinda izmanto echo komandu, lai parādītu cilpas mainīgā augļa pašreizējo vērtību. Tas izdrukā ziņojumu, piemēram, Pašreizējais auglis: ābols katram auglim masīvā.
- darīts: šis atslēgvārds apzīmē cilpas pamatteksta beigas. Tas norāda skriptam, ka cilpa ir pabeigta.

cilpai
12) Uzrakstiet čaulas skriptu, kas aprēķina veselu skaitļu summu no 1 līdz N, izmantojot cilpu.
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
echo Ievadiet skaitli (N):
lasīt N
summa=0
for ((i=1; i<=$N; i++ )); darīt
summa=$((summa + i))
darīts
echo Veselu skaitļu summa no 1 līdz $N ir: $sum
Paskaidrojums:
Skripts sākas ar lūgumu ievadīt skaitli (N), izmantojot lasīšanu. Šis skaitlis noteiks, cik reižu cilpa darbojas.
- Mainīgā summa tiek inicializēta uz 0. Šis mainīgais sekos veselu skaitļu summai.
- For cilpa sākas ar for (( i=1; i<=$N; i++ )). Šo cilpas struktūru izmanto, lai noteiktu darbību kopu atkārtotu noteiktu skaitu reižu, šajā gadījumā no 1 līdz N vērtībai.
- Cilpas ietvaros notiek šādas lietas:
- i=1 iestata cilpas mainīgo i uz 1 katras iterācijas sākumā.
- Cilpas nosacījums i<=$N pārbauda, vai i joprojām ir mazāks vai vienāds ar doto skaitli N.
- Ja nosacījums ir patiess, tiek izpildīts cilpas pamatteksts.
- summa=$((summa + i)) aprēķina summas jauno vērtību, pievienojot tai pašreizējo i vērtību. Tas saskaita veselus skaitļus no 1 līdz pašreizējai i vērtībai.
- Pēc katras iterācijas i++ palielina i vērtību par 1.
- Cilpa turpina darboties, līdz nosacījums i<=$N kļūst nepatiess (kad i kļūst lielāks par N).
- Kad cilpa ir pabeigta, skripts parāda veselu skaitļu summu no 1 līdz ievadītajam skaitlim N.
13) Izveidojiet skriptu, kas meklē konkrētu vārdu failā un skaita tā gadījumus.
Izveidojiet skripta nosaukumu vārdu_skaits.sh
#!/bin/bash
echo Ievadiet meklējamo vārdu:
lasīt mērķa_vārdu
echo Ievadiet faila nosaukumu:
lasīt faila nosaukumu
count=$(grep -o -w $mērķa_vārds $faila nosaukums | wc -l)
echo Vārds '$target_word' tiek parādīts $count reizes failā '$filename'.
Paskaidrojums:
- atbalss Ievadiet meklējamo vārdu:: Šajā rindā tiek parādīts ziņojums, kurā lietotājam tiek lūgts failā ievadīt vārdu, kuru viņš vēlas meklēt.
- lasīt mērķa_vārdu: šī rinda nolasa lietotāja sniegto ievadi un saglabā to mainīgajā ar nosaukumu target_word.
- echo Ievadiet faila nosaukumu:: Šajā rindā tiek parādīts ziņojums, kurā lietotājam tiek lūgts ievadīt faila nosaukumu, kurā viņš vēlas meklēt.
- lasīt faila nosaukumu: šī rinda nolasa lietotāja sniegto ievadi un saglabā to mainīgajā ar nosaukumu faila nosaukums.
- count=$(grep -o -w $ mērķa_vārds $ faila nosaukums | wc -l): šī rinda veic galveno skripta darbu. Sadalīsim to sīkāk:
- grep -o -w $mērķa_vārds $faila nosaukums: šī komandas daļa meklē mērķa_vārda gadījumus norādītajā faila nosaukumā. Opcijas -o un -w nodrošina, ka tiek skaitītas tikai veselu vārdu atbilstības.
- |: Šī ir caurule, kas ņem iepriekšējās komandas izvadi un nosūta to kā ievadi nākamajai komandai.
- wc -l: šī komandas daļa izmanto wc komandu, lai saskaitītu rindu skaitu ievadē. Opcija -l īpaši saskaita rindas.
- Visa komanda aprēķina mērķa_vārda gadījumu skaitu failā un piešķir to skaitu mainīgajam count
14) Izskaidrojiet atšķirības starp standarta izvadi (stdout) un standarta kļūdu (stderr).
Galvenā atšķirība starp standarta izvadi (stdout) un standarta kļūdu (stderr) ir šāda:
- Standarta izvade (stdout): Šī ir noklusējuma izvades straume, uz kuru tiek nosūtīta komandas parastā izvade. Pēc noklusējuma tas tiek parādīts terminālī. Varat to novirzīt uz failu, izmantojot>.
- Standarta kļūda (stderr): Šī ir kļūdu ziņojumu un brīdinājumu izvades plūsma. Tas tiek parādīts arī terminālī pēc noklusējuma. Varat to novirzīt uz failu, izmantojot 2>.
15) Izskaidrojiet nosacījumu priekšrakstu jēdzienu čaulas skriptēšanā.
Nosacītie paziņojumi čaulas skriptēšanā ļauj mums pieņemt lēmumus un kontrolēt mūsu skripta plūsmu, pamatojoties uz noteiktiem nosacījumiem. Tie ļauj mūsu skriptam izpildīt dažādas komandu kopas atkarībā no tā, vai konkrētais nosacījums ir patiess vai nepatiess. Galvenie nosacījuma priekšraksti čaulas skriptēšanā ir priekšraksts if, priekšraksts elif (neobligāts) un priekšraksts else (neobligāts).
Tālāk ir norādīta nosacījuma priekšraksta pamatstruktūra čaulas skriptēšanā:
programmatūras testēšana un veidi
ja [nosacījums]; tad
# Komandas, kas jāizpilda, ja nosacījums ir patiess
elif [cits_nosacījums]; tad
# Komandas, kas jāizpilda, ja other_condition ir patiess (neobligāti)
cits
# Komandas, kas jāizpilda, ja neviens no nosacījumiem nav patiess (neobligāti)
būt
Paskaidrojums:
- [ nosacījums ] = komanda, kas novērtē nosacījumu un atgriež patiesu (0) vai nepatiesu (kas nav nulle) izejas statusu.
- then = Tas ir atslēgvārds, kas norāda, ka tam sekojošās komandas tiks izpildītas, ja nosacījums tiks novērtēts kā patiess.
- elif = (saīsinājums no else if) Tā ir sadaļa, kas ļauj norādīt papildu nosacījumus, ko pārbaudīt.
- else = tā ir sadaļa, kurā ir komandas, kuras tiks izpildītas, ja neviens no nosacījumiem nav patiess.
- fi = Tas ir atslēgvārds, kas iezīmē nosacījumu bloka beigas.
16) Kā čaulas skriptā nolasāt rindiņas no faila?
Uz lasīt rindas no faila čaulas skriptā, mēs varam izmantot dažādas metodes, taču viena izplatīta pieeja ir izmantot while cilpu kopā ar lasīšanas komandu. Lūk, kā mēs to varam izdarīt:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Pārbaudiet, vai fails pastāv
if [ -e $fails ]; tad
kamēr IFS= lasīt -r līniju; darīt
echo Line lasāma: $line
# Šeit pievienojiet savu apstrādes loģiku
pabeigts <$file
cits
echo Fails nav atrasts: $file
būt
Paskaidrojums:
- #!/bin/bash: šī ir shebang rinda, kas norāda tulku (/bin/bash), kas jāizmanto skripta palaišanai.
- file=/home/jayeshkumar/jayesh.txt: šī rinda definē mainīgo failu un piešķir pilnu ceļu failam jayesh.txt direktorijā /home/jayeshkumar. Mainiet šo ceļu, lai tas atbilstu tā faila faktiskajam ceļam, kuru vēlaties lasīt.
- if [ -e $fails ]; then: šī rindiņa sāk if paziņojumu. Tā pārbauda, vai pastāv mainīgā $file norādītais fails. Karogs -e pārbauda faila esamību.
- kamēr IFS= lasīt -r līniju; do: šī rindiņa uzsāk kamēr cilpu, kas nolasa rindas no faila.
- IFS=: IFS (iekšējais lauka atdalītājs) ir iestatīts uz tukšu vērtību, lai saglabātu sākuma un beigu atstarpes.
- read -r line: šī nolasa pašreizējo rindiņu no faila un saglabā to mainīgā rindā.
- echo Line read: $line: šī rinda drukā tās rindas saturu, kas tika nolasīta no faila. Mainīgais $line satur pašreizējās rindas saturu.
- # Pievienojiet savu apstrādes loģiku šeit: Šis ir viettura komentārs, kurā varat pievienot savu loģiku, lai apstrādātu katru rindiņu. Piemēram, varat analizēt līniju, iegūt informāciju vai veikt noteiktas darbības, pamatojoties uz saturu.
- done <$file: tas iezīmē while cilpas beigas. <$fails novirza faila saturu, kas jālasa cilpai.
- else: ja fails neeksistē (nosacījums if paziņojumā ir nepatiess), skripts izpilda kodu sadaļā else.
- echo Fails nav atrasts: $file: Šajā rindā tiek izdrukāts kļūdas ziņojums, kas norāda, ka norādītais fails nav atrasts.
- fi: šī rinda iezīmē if priekšraksta beigas.

lasīšanas fails
Šeit mēs izmantojām ` pwd ` komandu, lai iegūtu pašreizējā direktorija ceļu.
17) Uzrakstiet čaulas skriptā funkciju, kas aprēķina dotā skaitļa faktoriālu.
Šeit ir skripts, kasaprēķināt faktoriāluno dotā numura.
#!/bin/bash
# Definējiet funkciju faktoriāla aprēķināšanai
aprēķināt_faktoriāls() {
skaits = 1 ASV dolārs
fakts=1
for ((i=1; i<=num; i++)); darīt
fakts=$((fakts * i))
darīts
atbalss $fakts
}
# Lūdziet lietotājam ievadīt numuru
echo Ievadiet numuru:
lasīt ievades_numurs
# Izsauciet funkciju Calculation_factorial ar ievades numuru
factorial_result=$(aprēķināt_faktoriālu $input_num)
# Parādīt koeficientu rezultātu
$input_num echo Faktoriāls ir: $factorial_result
Paskaidrojums:
- Skripts sākas ar shebang rindiņu #!/bin/bash, lai norādītu tulku.
- Calculation_factorial() ir definēts kā funkcija. Tam nepieciešams viens arguments, num, kas ir skaitlis, kuram jāaprēķina faktoriāls.
- Funkcijā fakts tiek inicializēts uz 1. Šis mainīgais saglabās faktoriālo rezultātu.
- For cilpa atkārtojas no 1 līdz norādītajam skaitlim (num). Katrā iterācijā tas reizina fakta pašreizējo vērtību ar cilpas indeksu i.
- Kad cilpa ir pabeigta, faktu mainīgais satur aprēķināto faktoriālu.
- Skripts liek lietotājam ievadīt numuru, izmantojot lasīšanu.
- Funkcija Calculation_factorial tiek izsaukta ar lietotāja norādīto numuru, un rezultāts tiek saglabāts mainīgajā factorial_result.
- Visbeidzot, skripts parāda aprēķināto faktoru rezultātu.

Faktoriāls
18) Kā čaulas skriptā apstrādājat tādus signālus kā Ctrl+C?
Apvalka skriptā varat apstrādāt tādus signālus kā Ctrl+C (pazīstams arī kā SIGINT), izmantojot komandu trap. Ctrl+C ģenerē SIGINT signālu, kad lietotājs to nospiež, lai pārtrauktu darbojošos skriptu vai programmu. Izmantojot trap komandu, varat norādīt darbības, kas jāveic, kad tiek saņemts konkrēts signāls. Tālāk ir norādīts, kā čaulas skriptā apstrādājat tādus signālus kā Ctrl+C.
#!/bin/bash
satīrīt() {
echo Script pārtraukts. Notiek tīrīšana…
# Šeit pievienojiet tīrīšanas darbības
izeja 1
}
# Iestatiet slazdu, lai izsauktu tīrīšanas funkciju, kad tiek saņemts Ctrl+C (SIGINT).
lamatas tīrīšana SIGINT
# Pārējais jūsu skripts
atbalss darbojas…
gulēt 10
atbalss Pabeigts.
Signālu apstrāde ir svarīga, lai padarītu skriptus stabilus un nodrošinātu, ka tie graciozi izturas pret negaidītiem pārtraukumiem. Varat pielāgot tīrīšanas funkciju, lai tā atbilstu jūsu īpašajām vajadzībām, piemēram, aizvērt failus, apturēt procesus vai reģistrēt informāciju pirms skripta iziešanas.
Paskaidrojums:
- #!/bin/bash: šī shebang rinda norāda tulku, kas jāizmanto skripta palaišanai.
- cleanup() { … }: tas definē funkciju ar nosaukumu cleanup. Šajā funkcijā varat iekļaut visas darbības, kas jāveic, kad skripts tiek pārtraukts, piemēram, failu aizvēršana, resursu atbrīvošana vai citu tīrīšanas uzdevumu veikšana.
- Trap tīrīšana SIGINT: Trap komanda tiek izmantota, lai iestatītu signālu apstrādātāju. Šajā gadījumā tas norāda, ka, saņemot SIGINT signālu (Ctrl+C), ir jāizpilda tīrīšanas funkcija.
- echo Darbojas…, miega režīms 10, echo Pabeigts.: šīs ir tikai komandu paraugi, lai simulētu skripta izpildi.
19) Izveidojiet skriptu, kas pārbauda un noņem teksta faila rindiņu dublikātus.
Šeit ir mūsu Linux scipt, kurā mēs noņemsim dublētās rindas no teksta faila.
#!/bin/bash
input_file=input.txt
output_file=output.txt
kārtot $input_file | uniq> $izejas_fails
echo Dublētas līnijas ir veiksmīgi noņemtas.
Paskaidrojums:
- Skripts sākas ar shebang (#!/bin/bash), kas norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
- Mainīgais ievades_fails ir iestatīts uz tā ievades faila nosaukumu, kurā ir rindiņu dublikāti (mainiet to uz faktisko ievades faila nosaukumu).
- Mainīgais output_file ir iestatīts uz tā izvades faila nosaukumu, kurā tiks noņemti dublikāti (mainiet to uz vēlamo izvades faila nosaukumu).
- Skripts izmanto kārtošanas komandu, lai kārtotu ievades faila rindas. Līniju kārtošana nodrošina dublēto rindu sagrupēšanu.
- Pēc tam sakārtotās rindas tiek nodotas komandai uniq, kas noņem secīgas dublētās rindas. Šī procesa izvade tiek novirzīta uz izvades failu.
- Pēc dublikātu noņemšanas skripts izdrukā veiksmes ziņojumu.

dublikāta rindas noņemšana
Šeit mēs izmantojam ` kaķis ` lai parādītu tekstu teksta failā.
20) Uzrakstiet skriptu, kas ģenerē drošu nejaušu paroli.
Šeit ir mūsu skripts drošas nejaušas paroles ģenerēšanai.
#!/bin/bash
# Funkcija, lai ģenerētu nejaušu paroli
gener_password() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Izsauciet funkciju un saglabājiet ģenerēto paroli
parole=$(ģenerēt_paroli)
echo Ģenerētā parole: $password
Piezīme: Lietotājs var attiecīgi mainīt tur paroles garumu, aizstājot skaitli `12`.
Paskaidrojums:
- Skripts sākas ar shebang (#!/bin/bash), kas norāda, ka tas jāinterpretē, izmantojot Bash apvalku.
- Funkcija generate_password ir definēta, lai ģenerētu nejaušu paroli. Lūk, kā tas darbojas:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- fold -w 12 sadala filtrētos nejaušos datus rindās, kuru platums ir 12 rakstzīmes.
- Head -n 1 atlasa pirmo rindiņu, faktiski dodot mums nejaušu rakstzīmju secību, kuras garums ir 12.
- Paroles mainīgajam tiek piešķirts funkcijas generate_password izsaukšanas rezultāts.
- Visbeidzot, ģenerētā parole tiek parādīta, izmantojot echo.
21) Uzrakstiet čaulas skriptu, kas aprēķina visu direktorijā esošo failu kopējo lielumu.
Šeit ir čaulas skripts, lai aprēķinātu visu direktorijā esošo failu kopējo lielumu.
#!/bin/bash
directory=/ceļš/uz/jūsu/direktoriju
total_size=$(du -csh $directory | grep total | awk ‘{print }’)
echo Kopējais failu lielums $direktorijā: $total_size
Paskaidrojums:
- Skripts sākas ar #!/bin/bash shebang, norādot, ka tas jāinterpretē, izmantojot Bash apvalku.
- Direktorija mainīgais ir iestatīts uz tā direktorija ceļu, kuram vēlaties aprēķināt kopējo faila lielumu. Aizstāt /path/to/your/directory ar faktisko ceļu.
- Komanda du tiek izmantota, lai novērtētu faila vietas izmantošanu. Izmantotās iespējas ir:
- -c: izveidojiet kopējo summu.
- -s: parāda tikai norādītā direktorija kopējo izmēru.
- -h: drukas izmēri cilvēkiem lasāmā formātā (piemēram, KB, MB, GB).
- Du izvade tiek nosūtīta uz grep total, lai filtrētu rindu, kurā ir kopējais izmērs.
- awk “{print }” tiek izmantots, lai no rindas izvilktu pirmo lauku (kopējo izmēru).
- Aprēķinātais kopējais izmērs tiek saglabāts mainīgajā total_size.
- Visbeidzot, skripts parāda kopējo izmēru, izmantojot atbalsi.

Kopējais failu lielums
Šeit mēs izmantojām ` pwd ` komandu, lai redzētu pašreizējo direktorijas ceļu.
22) Izskaidrojiet atšķirību starp if un elif paziņojumiem čaulas skriptēšanā.
Funkcija | `ja`Staiftement | `elif` Paziņojums |
---|---|---|
Mērķis | Izskaidrojiet atšķirību starp if un elif priekšrakstiem čaulas skriptēšanā. | Nodrošina alternatīvus nosacījumus, lai pārbaudītu, kad sākotnējais nosacījums ir nepatiess. |
lietojums | Lietots sākotnējam stāvoklim. | Izmanto pēc sākotnējā if nosacījuma, lai pārbaudītu papildu nosacījumus. |
bloku skaits | Var būt tikai viens ja bloks. | Var būt vairāki elif bloki, bet tikai viens cits bloks (pēc izvēles). |
Izpilde | Izpilda koda bloku, kas saistīts ar priekšrakstu if, ja nosacījums ir patiess. Ja nosacījums ir nepatiess, tiek izpildīts cits bloks (ja tāds ir) (neobligāti). | Pārbauda katru elif stāvokli kārtībā. Ja viens elif nosacījums ir patiess, tiek izpildīts atbilstošais koda bloks, un skripts iziet no visa nosacījuma bloka. Ja neviens no elif nosacījumiem nav patiess, tiek izpildīts else bloks (ja tāds ir). |
Ligzdotas struktūras | Var ligzdot citos if, elif vai else blokos. | Nevar ligzdot citā elif blokā, bet var izmantot if vai else blokā. |
Sapratīsim to ar piemēru.
#!/bin/bash
skaitlis=5
ja [ $skaitlis -gt 10 ]; tad
echo $skaitlis ir lielāks par 10
cits
echo $skaitlis nav lielāks par 10
būt
atbalss ———
ja [ $skaitlis -gt 10 ]; tad
echo $skaitlis ir lielāks par 10
elif [ $skaitlis -eq 10 ]; tad
echo $skaitlis ir vienāds ar 10
cits
echo $skaitlis ir mazāks par 10
būt
Paskaidrojums:
Šajā piemērā pirmais if bloks pārbauda, vai skaitlis ir lielāks par 10. Ja nē, tas izdrukā ziņojumu, kas norāda, ka skaitlis nav lielāks par 10. Otrais bloks ar elif priekšrakstiem pārbauda vairākus nosacījumus secīgi, līdz viens no tiem ir patiess. Šajā gadījumā, tā kā skaitļa vērtība ir 5, izvade būs:

if_elif atšķirība
23) Kā izmantot cilpu while, lai atkārtoti izpildītu komandas?
Shell skriptēšanā tiek izmantota while cilpa, lai atkārtoti izpildītu komandu kopu, ja vien norādītais nosacījums ir patiess. Cilpa turpina izpildīt komandas, līdz nosacījums kļūst nepatiess.
Lūk, kāda laika cilpas pamata sintakse:
kamēr [nosacījums]; darīt
# Komandas, kas jāizpilda
darīts
Paskaidrojums:
- Cilpa 'while' sākas ar atslēgvārdu 'while', kam seko nosacījums kvadrātiekavās '[ ]'.
- Cilpas pamatteksts, kurā ir izpildāmās komandas, ir ietverts atslēgvārdos 'do' un 'done'.
- Cilpa vispirms pārbauda stāvokli. Ja nosacījums ir patiess, tiek izpildītas komandas cilpas pamattekstā. Kad cilpas pamatteksts ir izpildīts, nosacījums tiek pārbaudīts vēlreiz, un process atkārtojas, līdz nosacījums kļūst nepatiess.
Piemērs: Ja vēlamies izdrukāt skaitļus no 1 līdz 5
#!/bin/bash
skaitītājs=1
while [ $counter -le 5 ]; darīt
atbalss Skaitlis: $skaitītājs
skaitītājs=$((skaitītājs + 1))
darīts
Paskaidrojums:
- Skaitītāja mainīgais ir iestatīts uz 1.
- Cikla while pārbauda, vai skaitītāja vērtība ir mazāka vai vienāda ar 5. Kamēr šis nosacījums ir patiess, cilpa turpina izpildīt.
- Cilpas iekšpusē pašreizējā skaitītāja vērtība tiek izdrukāta, izmantojot atbalsi.
- Skaitītājs tiek palielināts par 1, izmantojot izteiksmi $((skaitītājs + 1)).

kamēr cilpa
24) Izveidojiet čaulas skriptu, kas atrod un uzskaita visus tukšos failus direktorijā.
Shell skripts, ko varat izmantot, lai atrastu un uzskaitītu visus tukšos failus direktorijā, izmantojot komandas 'find' un 'stat':
#!/bin/bash
directory=″
ja [ -z $direktorijs ]; tad
echo Lietojums: 0 USD
izeja 1
būtja [ ! -d $direktorijs ]; tad
echo Kļūda: “$ directory” nav derīgs direktorijs.
izeja 1
būt
echo Tukši faili $ direktorijā:
atrodiet $ directory -type f -tukšu
Paskaidrojums:
- ` #!/bin/bash `: To sauc par shebang, un tas liek operētājsistēmai izmantot Bash apvalku, lai interpretētu un izpildītu skriptu.
- ` directory=″ `: šī rinda piešķir pirmo komandrindas argumentu (apzīmēts ar ) mainīgajam ` direktoriju `.
- ` ja [ -z $direktorijs ]; tad `: šī rinda sāk if priekšrakstu, kas pārbauda, vai ` direktoriju ` mainīgais ir tukšs (-z pārbauda tukšu virkni).
- ` echo Lietojums: 0 USD `: ja direktorijs ir tukšs, šajā rindā tiek izdrukāts lietošanas ziņojums, kur ` 0 $ ` apzīmē skripta nosaukumu.
- ` izeja 1 `: šī rinda iziet no skripta ar izejas kodu ` 1 `, kas norāda uz kļūdu.
- ` būt `: šī rinda iezīmē ` beigas ja ` paziņojums.
- ` ja [ ! -d $direktorijs ]; tad `: Tas sāk citu if priekšrakstu, lai pārbaudītu, vai norādītais direktorijs eksistē (` -d ` pārbauda direktoriju).
- ` echo Kļūda: “$ directory” nav derīgs direktorijs. `: ja norādītais direktorijs neeksistē, šī rinda izdrukā kļūdas ziņojumu.
- ` izeja 1 `: iziet no skripta ar izejas kodu ` 1 `.
- ` būt `: atzīmē otrās beigas ja` paziņojums, apgalvojums.
- ` echo Tukši faili $ direktorijā: `: Ja viss līdz šim ir derīgs, šajā rindā tiek izdrukāts ziņojums, kas norāda, ka skripts norādītajā direktorijā uzskaitīs tukšus failus.
- ` atrodiet $ directory -type f -tukšu `: šajā rindā tiek izmantots ` atrast ` komandu, lai meklētu tukšus failus (` - tukšs `) parastie faili (` - tipa f `) norādītajā direktorijā. Pēc tam tiek uzskaitīti šie tukšie faili.

Tukšu failu atrašana
Piezīme : mums ir jānorāda direktorijs kā arguments, izpildot skriptu. Šeit mēs esam izmantojuši pašreizējā direktorija home/jayeshkumar/ ceļu
25) Kāds ir lasīšanas komandas mērķis čaulas skriptēšanā?
Lasīšanas komanda čaulas skriptēšanā ļauj skriptam lūgt jums informāciju. Tas ir tāpat kā tad, kad dators uzdod jums jautājumu un gaida jūsu atbildi. Tas ir noderīgi skriptiem, kuros kaut kas jāievada, vai gadījumos, kad skriptam ir jāstrādā ar informāciju no failiem. Lasīšanas komanda palīdz skriptam apstāties un gaidīt, ko rakstāt, un pēc tam tā var izmantot šo informāciju, lai skriptā veiktu vairāk darbību.
Lasīšanas komandas sintakse:
read variable_name>
Piemērs : Ja mēs vēlamies lietot vārdu kā ievadi no lietotāja, lai to izdrukātu.
#!/bin/bash
echo Lūdzu, ievadiet savu vārdu:
lasīt vārdu
echo Sveiks, $name!

lasīt nam
Rezumējot, lasīšanas komanda tiek izmantota, lai tvertu lietotāja ievadi vai datus no failiem čaulas skriptos, padarot skriptus interaktīvākus un daudzpusīgākus.
26) Uzrakstiet čaulas skriptu, kas pārvērš visus direktorijā esošo failu nosaukumus uz mazajiem burtiem.
Šeit ir čaulas skripts, kas pārvērš visus direktorijā esošo failu nosaukumus uz mazajiem burtiem.
#!/bin/bash
directory=″
ja [ -z $direktorijs ]; tad
echo Lietojums: 0 USD
izeja 1
būtja [ ! -d $direktorijs ]; tad
echo Kļūda: “$ directory” nav derīgs direktorijs.
izeja 1
būtcd $direktorijs || izeja 1
lidinās cssfailam *; darīt
if [ -f $fails ]; tad
newname=$(echo $file | tr ‘A-Z’ ‘a-z’)
[ $file != $newname ] && mv $fails $jaunsaukums
būt
darīts
Paskaidrojums:
- #!/bin/bash : Šis ir shebang, kas norāda, ka skripts ir jāinterpretē, izmantojot Bash apvalku.
- directory=″ : šī rinda piešķir pirmo komandrindas argumentu mainīgo direktorijam.
- ja [ -z $direktorijs ]; tad : šī rinda pārbauda, vai direktorija mainīgais ir tukšs (palaižot skriptu, nav norādīts arguments).
- echo Lietojums: 0 USD : ja direktorijs ir tukšs, šajā rindā tiek izdrukāts lietošanas ziņojums ar skripta nosaukumu (
).Visiem Linux izplatījumiem čaulas skripts ir kā burvju nūjiņa, kas automatizē procesu, ietaupa lietotāju laiku un palielina produktivitāti. Šī skriptēšanas apmācība iepazīstinās jūs ar 25 plus skriptu piemēriem.
Bet pirms mēs pārejam pie tēmas čaulas skriptēšana piemērus, sapratīsim čaulas skriptu un čaulas skriptu faktiskos lietošanas gadījumus.
Kas ir Shell skripts?
Nu, apvalks ir a CLI ( komandrindas tulks ), kas darbojas teksta logā, kurā lietotāji var pārvaldīt un izpildīt čaulas komandas. No otras puses, Linux sistēmā izpildāmo komandu kopas rakstīšanas process. Fails, kas ietver šādas instrukcijas, tiek saukts par bash skriptu.
Shell skriptu lietojumi
Tālāk ir norādīti daži bieži sastopami Shell skripta lietojumi:
- Uzdevumu automatizācija - To var izmantot, lai automatizētu atkārtotus uzdevumus, piemēram, regulārus dublējumus un programmatūras instalēšanas uzdevumus.
- Pielāgošana - Var izmantot čaulas skriptus, lai izstrādātu komandrindas vidi un viegli veiktu uzdevumu atbilstoši vajadzībām.
- Failu pārvaldība - Apvalka skriptus var izmantot arī, lai pārvaldītu un manipulētu ar failiem un direktorijiem, piemēram, failu pārvietošanai, kopēšanai, pārdēvēšanai vai dzēšanai.
Shell skriptu piemēri operētājsistēmā Linux
1) Ko norāda shebang (#!) čaulas skripta sākumā?
The shebang (#!) skripta sākumā norāda tulku, kas jāizmanto skripta izpildei. Tas norāda sistēmai, kuram apvalkam vai tulkam jāinterpretē skripta komandas.
Piemēram: Pieņemsim, ka mums ir skripts ar nosaukumu myscript.sh rakstīts Bash čaulā:
Shebang
Šajā piemērā:
- #!/bin/bash skripta sākumā norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
- Echo komandas tiek izmantotas, lai drukātu ziņojumus uz termināli.
2) Kā palaist čaulas skriptu no komandrindas?
Lai palaistu čaulas skriptu no komandrindas, mums ir jāveic šādas darbības:
- Pārliecinieties, vai skripta failam ir izpildāmās atļaujas, izmantojot chmod komanda :
chmod +x myscript.sh>
- Izpildiet skriptu, izmantojot tā faila nosaukumu:
./myscript.sh>
Šeit jums ir jāaizstāj myscript.sh ar savu skripta nosaukumu.
3) Uzrakstiet čaulas skriptu, kas terminālī izdrukā techcodeview.com.
Izveidojiet skripta nosaukumu `myscript.sh` (mēs izmantojam ` jo ` redaktors, jūs varat izvēlēties jebkuru redaktoru)
vim myscript.sh>
#!/bin/bash
# Šis skripts terminālī izdrukā techcodeview.com
echo techcodeview.comdrukas nosaukums
Mēs padarām savu skriptu izpildāmu, izmantojot `chmod +x`, pēc tam izpildām ar `./myscipt.sh` un iegūstam vēlamo izvadi techcodeview.com.
4) Izskaidrojiet echo komandas mērķi čaulas skriptēšanā.
The atbalss komanda tiek izmantots, lai terminālī parādītu tekstu vai mainīgos. To parasti izmanto ziņojumu, mainīgo vērtību drukāšanai un programmas izvades ģenerēšanai.
atbalss komanda
Šajā piemērā mēs esam tieši izpildījuši 'echo' terminālī, jo tā darbojas tāpat čaulas skriptā.
5) Kā čaulas skriptā mainīgajam var piešķirt vērtību?
Mainīgajiem tiek piešķirtas vērtības, izmantojot piešķiršanas operatoru =.
Piemēram:
#!/bin/bash
# Vērtības piešķiršana mainīgajam
vārds = Džeišs
vecums = 21
atbalss $name $vecumsPaskaidrojums:
- Nosaukuma mainīgajam ir piešķirta vērtība Jayesh.
- Vecuma mainīgajam tiek piešķirta vērtība 21.
- echo tiek izmantots drukāšanai, un `$name` `$age` tiek izmantots, lai izsauktu mainīgajos saglabāto vērtību.
6) Uzrakstiet čaulas skriptu, kas izmanto lietotāja vārdu un sveicina viņu.
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
# Jautājiet lietotājam viņa vārdu
echo Kā tevi sauc?
lasīt vārdu
# Sveiciniet lietotāju
echo Sveiks, $name! Prieks iepazīties.Paskaidrojums:
- #!/bin/bash: šī ir shebang līnija. Tas liek sistēmai izmantot Bash tulku, lai izpildītu skriptu.
- # Pajautājiet lietotājam viņa vārdu: Šis ir komentārs. Tas nodrošina kontekstu par gaidāmo kodu. Tulks komentārus ignorē.
- echo Kāds ir jūsu vārds?: Echo komanda tiek izmantota, lai terminālī parādītu tekstu dubultpēdiņās.
- lasīšanas nosaukums: lasīšanas komanda gaida, līdz lietotājs ievadīs tekstu, un saglabā to mainīgā nosaukumā.
- echo Sveiks, $name! Prieks iepazīties.: šajā rindā tiek izmantota komanda echo, lai izdrukātu sveiciena ziņojumu, kurā ir iekļauta nosaukuma mainīgā vērtība, kas tika savākta no lietotāja ievades.
7) Kā čaulas skriptam pievieno komentārus?
Komentāri čaulas skriptēšanā tiek izmantoti, lai sniegtu koda paskaidrojumus vai kontekstu. Tulks tos ignorē, un tie ir paredzēti tikai cilvēkiem, kas lasa skriptu. Varat pievienot komentārus, izmantojot simbolu #.
#!/bin/bash
# Šis ir komentārs, kas izskaidro skripta mērķi
echo gfg8) Izveidojiet čaulas skriptu, kas pārbauda, vai fails pastāv pašreizējā direktorijā.
Šis ir skripts, kas pārbauda, vai pašreizējā direktorijā pastāv fails ar nosaukumu example.txt:
#!/bin/bash
file=example.txt
# Pārbaudiet, vai fails pastāv
if [ -e $fails ]; tad
echo Fails pastāv: $file
cits
echo Fails nav atrasts: $file
būtPaskaidrojums:
- #!/bin/bash: šī ir shebang rinda, kas norāda tulku (/bin/bash), kas jāizmanto skripta palaišanai.
- file=example.txt: šī rinda definē mainīgo failu un piešķir tam vērtību example.txt. Varat to aizstāt ar tā faila nosaukumu, kuru vēlaties pārbaudīt.
- if [ -e $fails ]; then: šī rindiņa sāk if paziņojumu. Nosacījums [ -e $file] pārbauda, vai fails, kas norādīts ar faila mainīgā vērtību, pastāv. Karodziņu -e izmanto, lai pārbaudītu faila esamību.
- echo Fails pastāv: $file: ja nosacījums ir patiess (t.i., fails eksistē), šajā rindā tiek izdrukāts ziņojums, kas norāda, ka fails eksistē, kopā ar faila nosaukumu.
- else: ja nosacījums ir nepatiess (t.i., fails neeksistē), skripts izpilda kodu zem zara else.
- echo Fails nav atrasts: $file: šajā rindā tiek izdrukāts kļūdas ziņojums, kas norāda, ka norādītais fails nav atrasts, kā arī faila nosaukums.
- fi: šī rinda iezīmē if priekšraksta beigas.
Faila atrašana
9) Kāda ir atšķirība starp vienpēdiņām (') un dubultpēdiņām () čaulas skriptēšanā?
Vienpēdiņas (') un dubultpēdas () tiek izmantotas, lai iekļautu virknes čaulas skriptos, taču tām ir atšķirīga darbība:
- Atsevišķas pēdiņas: viss, kas atrodas starp pēdiņām, tiek uzskatīts par burtisku virkni. Mainīgo nosaukumi un lielākā daļa īpašo rakstzīmju netiek izvērsti.
- Dubultās pēdiņas: tiek izvērsti mainīgie un noteiktas speciālās rakstzīmes dubultpēdiņās. Saturs ir pakļauts mainīgai aizstāšanai un komandu aizstāšanai.
#!/bin/bash
abcd=Sveiki
echo ‘$abcd’ # Izvade: $abcd
echo $abcd # Izvade: Sveiki10) Kā čaulas skriptā var izmantot komandrindas argumentus?
Komandrindas argumenti ir vērtības, kas tiek nodrošinātas skriptam, kad tas tiek izpildīts. Tiem var piekļūt skriptā, izmantojot īpašus mainīgos, piemēram, $1, $2 utt., kur $1 apzīmē pirmo argumentu, $2 apzīmē otro argumentu un tā tālāk.
Piemēram: Ja mūsu skripta nosaukums ir “example.sh”.
#!/bin/bash
echo Skripta nosaukums: $0
echo Pirmais arguments: $1
echo Otrais arguments: $2Ja palaižam skriptu ar `.example.sh hello_1 hello_2`, tas izvadīs:
cli argumenti
11) Kā izmantot cilpu for, lai atkārtotu vērtību sarakstu?
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
augļi = (ābolu banānu ķiršu datums)
augļiem ${fruits[@]}; darīt
echo Pašreizējais auglis: $auglis
darītsPaskaidrojums:
Rinda `fruits=` izveido masīvu ar nosaukumu augļi ar četriem elementiem: ābols, banāns, ķirsis un datums.
- augļiem ${fruits[@]}; do: šī rinda sāk for cilpu. Lūk, ko nozīmē katra daļa:
- augļiem: tas deklarē cilpas mainīgo, ko sauc par augļiem. Katrā cilpas iterācijā augļi saglabās pašreizējā augļu masīva elementa vērtību.
- ${fruits[@]}: šis ir masīva paplašinājums, kas paņem visus augļu masīva elementus. ${…} sintakse nodrošina, ka katrs elements tiek uzskatīts par atsevišķu vienumu.
- do: šis atslēgvārds iezīmē cilpas pamatteksta sākumu.
- echo Pašreizējais auglis: $fruit: cilpas iekšpusē šī rinda izmanto echo komandu, lai parādītu cilpas mainīgā augļa pašreizējo vērtību. Tas izdrukā ziņojumu, piemēram, Pašreizējais auglis: ābols katram auglim masīvā.
- darīts: šis atslēgvārds apzīmē cilpas pamatteksta beigas. Tas norāda skriptam, ka cilpa ir pabeigta.
cilpai
12) Uzrakstiet čaulas skriptu, kas aprēķina veselu skaitļu summu no 1 līdz N, izmantojot cilpu.
Izveidojiet skripta nosaukumu “example.sh”.
#!/bin/bash
echo Ievadiet skaitli (N):
lasīt N
summa=0
for ((i=1; i<=$N; i++ )); darīt
summa=$((summa + i))
darīts
echo Veselu skaitļu summa no 1 līdz $N ir: $sumPaskaidrojums:
Skripts sākas ar lūgumu ievadīt skaitli (N), izmantojot lasīšanu. Šis skaitlis noteiks, cik reižu cilpa darbojas.- Mainīgā summa tiek inicializēta uz 0. Šis mainīgais sekos veselu skaitļu summai.
- For cilpa sākas ar for (( i=1; i<=$N; i++ )). Šo cilpas struktūru izmanto, lai noteiktu darbību kopu atkārtotu noteiktu skaitu reižu, šajā gadījumā no 1 līdz N vērtībai.
- Cilpas ietvaros notiek šādas lietas:
- i=1 iestata cilpas mainīgo i uz 1 katras iterācijas sākumā.
- Cilpas nosacījums i<=$N pārbauda, vai i joprojām ir mazāks vai vienāds ar doto skaitli N.
- Ja nosacījums ir patiess, tiek izpildīts cilpas pamatteksts.
- summa=$((summa + i)) aprēķina summas jauno vērtību, pievienojot tai pašreizējo i vērtību. Tas saskaita veselus skaitļus no 1 līdz pašreizējai i vērtībai.
- Pēc katras iterācijas i++ palielina i vērtību par 1.
- Cilpa turpina darboties, līdz nosacījums i<=$N kļūst nepatiess (kad i kļūst lielāks par N).
- Kad cilpa ir pabeigta, skripts parāda veselu skaitļu summu no 1 līdz ievadītajam skaitlim N.
13) Izveidojiet skriptu, kas meklē konkrētu vārdu failā un skaita tā gadījumus.
Izveidojiet skripta nosaukumu vārdu_skaits.sh
#!/bin/bash
echo Ievadiet meklējamo vārdu:
lasīt mērķa_vārdu
echo Ievadiet faila nosaukumu:
lasīt faila nosaukumu
count=$(grep -o -w $mērķa_vārds $faila nosaukums | wc -l)
echo Vārds '$target_word' tiek parādīts $count reizes failā '$filename'.Paskaidrojums:
- atbalss Ievadiet meklējamo vārdu:: Šajā rindā tiek parādīts ziņojums, kurā lietotājam tiek lūgts failā ievadīt vārdu, kuru viņš vēlas meklēt.
- lasīt mērķa_vārdu: šī rinda nolasa lietotāja sniegto ievadi un saglabā to mainīgajā ar nosaukumu target_word.
- echo Ievadiet faila nosaukumu:: Šajā rindā tiek parādīts ziņojums, kurā lietotājam tiek lūgts ievadīt faila nosaukumu, kurā viņš vēlas meklēt.
- lasīt faila nosaukumu: šī rinda nolasa lietotāja sniegto ievadi un saglabā to mainīgajā ar nosaukumu faila nosaukums.
- count=$(grep -o -w $ mērķa_vārds $ faila nosaukums | wc -l): šī rinda veic galveno skripta darbu. Sadalīsim to sīkāk:
- grep -o -w $mērķa_vārds $faila nosaukums: šī komandas daļa meklē mērķa_vārda gadījumus norādītajā faila nosaukumā. Opcijas -o un -w nodrošina, ka tiek skaitītas tikai veselu vārdu atbilstības.
- |: Šī ir caurule, kas ņem iepriekšējās komandas izvadi un nosūta to kā ievadi nākamajai komandai.
- wc -l: šī komandas daļa izmanto wc komandu, lai saskaitītu rindu skaitu ievadē. Opcija -l īpaši saskaita rindas.
- Visa komanda aprēķina mērķa_vārda gadījumu skaitu failā un piešķir to skaitu mainīgajam count
14) Izskaidrojiet atšķirības starp standarta izvadi (stdout) un standarta kļūdu (stderr).
Galvenā atšķirība starp standarta izvadi (stdout) un standarta kļūdu (stderr) ir šāda:
- Standarta izvade (stdout): Šī ir noklusējuma izvades straume, uz kuru tiek nosūtīta komandas parastā izvade. Pēc noklusējuma tas tiek parādīts terminālī. Varat to novirzīt uz failu, izmantojot>.
- Standarta kļūda (stderr): Šī ir kļūdu ziņojumu un brīdinājumu izvades plūsma. Tas tiek parādīts arī terminālī pēc noklusējuma. Varat to novirzīt uz failu, izmantojot 2>.
15) Izskaidrojiet nosacījumu priekšrakstu jēdzienu čaulas skriptēšanā.
Nosacītie paziņojumi čaulas skriptēšanā ļauj mums pieņemt lēmumus un kontrolēt mūsu skripta plūsmu, pamatojoties uz noteiktiem nosacījumiem. Tie ļauj mūsu skriptam izpildīt dažādas komandu kopas atkarībā no tā, vai konkrētais nosacījums ir patiess vai nepatiess. Galvenie nosacījuma priekšraksti čaulas skriptēšanā ir priekšraksts if, priekšraksts elif (neobligāts) un priekšraksts else (neobligāts).
Tālāk ir norādīta nosacījuma priekšraksta pamatstruktūra čaulas skriptēšanā:
ja [nosacījums]; tad
# Komandas, kas jāizpilda, ja nosacījums ir patiess
elif [cits_nosacījums]; tad
# Komandas, kas jāizpilda, ja other_condition ir patiess (neobligāti)
cits
# Komandas, kas jāizpilda, ja neviens no nosacījumiem nav patiess (neobligāti)
būtPaskaidrojums:
- [ nosacījums ] = komanda, kas novērtē nosacījumu un atgriež patiesu (0) vai nepatiesu (kas nav nulle) izejas statusu.
- then = Tas ir atslēgvārds, kas norāda, ka tam sekojošās komandas tiks izpildītas, ja nosacījums tiks novērtēts kā patiess.
- elif = (saīsinājums no else if) Tā ir sadaļa, kas ļauj norādīt papildu nosacījumus, ko pārbaudīt.
- else = tā ir sadaļa, kurā ir komandas, kuras tiks izpildītas, ja neviens no nosacījumiem nav patiess.
- fi = Tas ir atslēgvārds, kas iezīmē nosacījumu bloka beigas.
16) Kā čaulas skriptā nolasāt rindiņas no faila?
Uz lasīt rindas no faila čaulas skriptā, mēs varam izmantot dažādas metodes, taču viena izplatīta pieeja ir izmantot while cilpu kopā ar lasīšanas komandu. Lūk, kā mēs to varam izdarīt:
#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Pārbaudiet, vai fails pastāv
if [ -e $fails ]; tad
kamēr IFS= lasīt -r līniju; darīt
echo Line lasāma: $line
# Šeit pievienojiet savu apstrādes loģiku
pabeigts <$file
cits
echo Fails nav atrasts: $file
būtPaskaidrojums:
- #!/bin/bash: šī ir shebang rinda, kas norāda tulku (/bin/bash), kas jāizmanto skripta palaišanai.
- file=/home/jayeshkumar/jayesh.txt: šī rinda definē mainīgo failu un piešķir pilnu ceļu failam jayesh.txt direktorijā /home/jayeshkumar. Mainiet šo ceļu, lai tas atbilstu tā faila faktiskajam ceļam, kuru vēlaties lasīt.
- if [ -e $fails ]; then: šī rindiņa sāk if paziņojumu. Tā pārbauda, vai pastāv mainīgā $file norādītais fails. Karogs -e pārbauda faila esamību.
- kamēr IFS= lasīt -r līniju; do: šī rindiņa uzsāk kamēr cilpu, kas nolasa rindas no faila.
- IFS=: IFS (iekšējais lauka atdalītājs) ir iestatīts uz tukšu vērtību, lai saglabātu sākuma un beigu atstarpes.
- read -r line: šī nolasa pašreizējo rindiņu no faila un saglabā to mainīgā rindā.
- echo Line read: $line: šī rinda drukā tās rindas saturu, kas tika nolasīta no faila. Mainīgais $line satur pašreizējās rindas saturu.
- # Pievienojiet savu apstrādes loģiku šeit: Šis ir viettura komentārs, kurā varat pievienot savu loģiku, lai apstrādātu katru rindiņu. Piemēram, varat analizēt līniju, iegūt informāciju vai veikt noteiktas darbības, pamatojoties uz saturu.
- done <$file: tas iezīmē while cilpas beigas. <$fails novirza faila saturu, kas jālasa cilpai.
- else: ja fails neeksistē (nosacījums if paziņojumā ir nepatiess), skripts izpilda kodu sadaļā else.
- echo Fails nav atrasts: $file: Šajā rindā tiek izdrukāts kļūdas ziņojums, kas norāda, ka norādītais fails nav atrasts.
- fi: šī rinda iezīmē if priekšraksta beigas.
lasīšanas fails
Šeit mēs izmantojām ` pwd ` komandu, lai iegūtu pašreizējā direktorija ceļu.
17) Uzrakstiet čaulas skriptā funkciju, kas aprēķina dotā skaitļa faktoriālu.
Šeit ir skripts, kasaprēķināt faktoriāluno dotā numura.
#!/bin/bash
# Definējiet funkciju faktoriāla aprēķināšanai
aprēķināt_faktoriāls() {
skaits = 1 ASV dolārs
fakts=1
for ((i=1; i<=num; i++)); darīt
fakts=$((fakts * i))
darīts
atbalss $fakts
}
# Lūdziet lietotājam ievadīt numuru
echo Ievadiet numuru:
lasīt ievades_numurs
# Izsauciet funkciju Calculation_factorial ar ievades numuru
factorial_result=$(aprēķināt_faktoriālu $input_num)
# Parādīt koeficientu rezultātu
$input_num echo Faktoriāls ir: $factorial_resultPaskaidrojums:
- Skripts sākas ar shebang rindiņu #!/bin/bash, lai norādītu tulku.
- Calculation_factorial() ir definēts kā funkcija. Tam nepieciešams viens arguments, num, kas ir skaitlis, kuram jāaprēķina faktoriāls.
- Funkcijā fakts tiek inicializēts uz 1. Šis mainīgais saglabās faktoriālo rezultātu.
- For cilpa atkārtojas no 1 līdz norādītajam skaitlim (num). Katrā iterācijā tas reizina fakta pašreizējo vērtību ar cilpas indeksu i.
- Kad cilpa ir pabeigta, faktu mainīgais satur aprēķināto faktoriālu.
- Skripts liek lietotājam ievadīt numuru, izmantojot lasīšanu.
- Funkcija Calculation_factorial tiek izsaukta ar lietotāja norādīto numuru, un rezultāts tiek saglabāts mainīgajā factorial_result.
- Visbeidzot, skripts parāda aprēķināto faktoru rezultātu.
Faktoriāls
18) Kā čaulas skriptā apstrādājat tādus signālus kā Ctrl+C?
Apvalka skriptā varat apstrādāt tādus signālus kā Ctrl+C (pazīstams arī kā SIGINT), izmantojot komandu trap. Ctrl+C ģenerē SIGINT signālu, kad lietotājs to nospiež, lai pārtrauktu darbojošos skriptu vai programmu. Izmantojot trap komandu, varat norādīt darbības, kas jāveic, kad tiek saņemts konkrēts signāls. Tālāk ir norādīts, kā čaulas skriptā apstrādājat tādus signālus kā Ctrl+C.
#!/bin/bash
satīrīt() {
echo Script pārtraukts. Notiek tīrīšana…
# Šeit pievienojiet tīrīšanas darbības
izeja 1
}
# Iestatiet slazdu, lai izsauktu tīrīšanas funkciju, kad tiek saņemts Ctrl+C (SIGINT).
lamatas tīrīšana SIGINT
# Pārējais jūsu skripts
atbalss darbojas…
gulēt 10
atbalss Pabeigts.Signālu apstrāde ir svarīga, lai padarītu skriptus stabilus un nodrošinātu, ka tie graciozi izturas pret negaidītiem pārtraukumiem. Varat pielāgot tīrīšanas funkciju, lai tā atbilstu jūsu īpašajām vajadzībām, piemēram, aizvērt failus, apturēt procesus vai reģistrēt informāciju pirms skripta iziešanas.
Paskaidrojums:
- #!/bin/bash: šī shebang rinda norāda tulku, kas jāizmanto skripta palaišanai.
- cleanup() { … }: tas definē funkciju ar nosaukumu cleanup. Šajā funkcijā varat iekļaut visas darbības, kas jāveic, kad skripts tiek pārtraukts, piemēram, failu aizvēršana, resursu atbrīvošana vai citu tīrīšanas uzdevumu veikšana.
- Trap tīrīšana SIGINT: Trap komanda tiek izmantota, lai iestatītu signālu apstrādātāju. Šajā gadījumā tas norāda, ka, saņemot SIGINT signālu (Ctrl+C), ir jāizpilda tīrīšanas funkcija.
- echo Darbojas…, miega režīms 10, echo Pabeigts.: šīs ir tikai komandu paraugi, lai simulētu skripta izpildi.
19) Izveidojiet skriptu, kas pārbauda un noņem teksta faila rindiņu dublikātus.
Šeit ir mūsu Linux scipt, kurā mēs noņemsim dublētās rindas no teksta faila.
#!/bin/bash
input_file=input.txt
output_file=output.txt
kārtot $input_file | uniq> $izejas_fails
echo Dublētas līnijas ir veiksmīgi noņemtas.Paskaidrojums:
- Skripts sākas ar shebang (#!/bin/bash), kas norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
- Mainīgais ievades_fails ir iestatīts uz tā ievades faila nosaukumu, kurā ir rindiņu dublikāti (mainiet to uz faktisko ievades faila nosaukumu).
- Mainīgais output_file ir iestatīts uz tā izvades faila nosaukumu, kurā tiks noņemti dublikāti (mainiet to uz vēlamo izvades faila nosaukumu).
- Skripts izmanto kārtošanas komandu, lai kārtotu ievades faila rindas. Līniju kārtošana nodrošina dublēto rindu sagrupēšanu.
- Pēc tam sakārtotās rindas tiek nodotas komandai uniq, kas noņem secīgas dublētās rindas. Šī procesa izvade tiek novirzīta uz izvades failu.
- Pēc dublikātu noņemšanas skripts izdrukā veiksmes ziņojumu.
dublikāta rindas noņemšana
Šeit mēs izmantojam ` kaķis ` lai parādītu tekstu teksta failā.
20) Uzrakstiet skriptu, kas ģenerē drošu nejaušu paroli.
Šeit ir mūsu skripts drošas nejaušas paroles ģenerēšanai.
#!/bin/bash
# Funkcija, lai ģenerētu nejaušu paroli
gener_password() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Izsauciet funkciju un saglabājiet ģenerēto paroli
parole=$(ģenerēt_paroli)
echo Ģenerētā parole: $passwordPiezīme: Lietotājs var attiecīgi mainīt tur paroles garumu, aizstājot skaitli `12`.
Paskaidrojums:
- Skripts sākas ar shebang (#!/bin/bash), kas norāda, ka tas jāinterpretē, izmantojot Bash apvalku.
- Funkcija generate_password ir definēta, lai ģenerētu nejaušu paroli. Lūk, kā tas darbojas:
- tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
- fold -w 12 sadala filtrētos nejaušos datus rindās, kuru platums ir 12 rakstzīmes.
- Head -n 1 atlasa pirmo rindiņu, faktiski dodot mums nejaušu rakstzīmju secību, kuras garums ir 12.
- Paroles mainīgajam tiek piešķirts funkcijas generate_password izsaukšanas rezultāts.
- Visbeidzot, ģenerētā parole tiek parādīta, izmantojot echo.
21) Uzrakstiet čaulas skriptu, kas aprēķina visu direktorijā esošo failu kopējo lielumu.
Šeit ir čaulas skripts, lai aprēķinātu visu direktorijā esošo failu kopējo lielumu.
#!/bin/bash
directory=/ceļš/uz/jūsu/direktoriju
total_size=$(du -csh $directory | grep total | awk ‘{print $1}’)
echo Kopējais failu lielums $direktorijā: $total_sizePaskaidrojums:
- Skripts sākas ar #!/bin/bash shebang, norādot, ka tas jāinterpretē, izmantojot Bash apvalku.
- Direktorija mainīgais ir iestatīts uz tā direktorija ceļu, kuram vēlaties aprēķināt kopējo faila lielumu. Aizstāt /path/to/your/directory ar faktisko ceļu.
- Komanda du tiek izmantota, lai novērtētu faila vietas izmantošanu. Izmantotās iespējas ir:
- -c: izveidojiet kopējo summu.
- -s: parāda tikai norādītā direktorija kopējo izmēru.
- -h: drukas izmēri cilvēkiem lasāmā formātā (piemēram, KB, MB, GB).
- Du izvade tiek nosūtīta uz grep total, lai filtrētu rindu, kurā ir kopējais izmērs.
- awk “{print $1}” tiek izmantots, lai no rindas izvilktu pirmo lauku (kopējo izmēru).
- Aprēķinātais kopējais izmērs tiek saglabāts mainīgajā total_size.
- Visbeidzot, skripts parāda kopējo izmēru, izmantojot atbalsi.
Kopējais failu lielums
Šeit mēs izmantojām ` pwd ` komandu, lai redzētu pašreizējo direktorijas ceļu.
22) Izskaidrojiet atšķirību starp if un elif paziņojumiem čaulas skriptēšanā.
Funkcija `ja`Staiftement `elif` Paziņojums Mērķis Izskaidrojiet atšķirību starp if un elif priekšrakstiem čaulas skriptēšanā. Nodrošina alternatīvus nosacījumus, lai pārbaudītu, kad sākotnējais nosacījums ir nepatiess. lietojums Lietots sākotnējam stāvoklim. Izmanto pēc sākotnējā if nosacījuma, lai pārbaudītu papildu nosacījumus. bloku skaits Var būt tikai viens ja bloks. Var būt vairāki elif bloki, bet tikai viens cits bloks (pēc izvēles). Izpilde Izpilda koda bloku, kas saistīts ar priekšrakstu if, ja nosacījums ir patiess. Ja nosacījums ir nepatiess, tiek izpildīts cits bloks (ja tāds ir) (neobligāti). Pārbauda katru elif stāvokli kārtībā. Ja viens elif nosacījums ir patiess, tiek izpildīts atbilstošais koda bloks, un skripts iziet no visa nosacījuma bloka. Ja neviens no elif nosacījumiem nav patiess, tiek izpildīts else bloks (ja tāds ir). Ligzdotas struktūras Var ligzdot citos if, elif vai else blokos. Nevar ligzdot citā elif blokā, bet var izmantot if vai else blokā. Sapratīsim to ar piemēru.
#!/bin/bash
skaitlis=5
ja [ $skaitlis -gt 10 ]; tad
echo $skaitlis ir lielāks par 10
cits
echo $skaitlis nav lielāks par 10
būt
atbalss ———
ja [ $skaitlis -gt 10 ]; tad
echo $skaitlis ir lielāks par 10
elif [ $skaitlis -eq 10 ]; tad
echo $skaitlis ir vienāds ar 10
cits
echo $skaitlis ir mazāks par 10
būtPaskaidrojums:
Šajā piemērā pirmais if bloks pārbauda, vai skaitlis ir lielāks par 10. Ja nē, tas izdrukā ziņojumu, kas norāda, ka skaitlis nav lielāks par 10. Otrais bloks ar elif priekšrakstiem pārbauda vairākus nosacījumus secīgi, līdz viens no tiem ir patiess. Šajā gadījumā, tā kā skaitļa vērtība ir 5, izvade būs:
if_elif atšķirība
23) Kā izmantot cilpu while, lai atkārtoti izpildītu komandas?
Shell skriptēšanā tiek izmantota while cilpa, lai atkārtoti izpildītu komandu kopu, ja vien norādītais nosacījums ir patiess. Cilpa turpina izpildīt komandas, līdz nosacījums kļūst nepatiess.
Lūk, kāda laika cilpas pamata sintakse:
kamēr [nosacījums]; darīt
# Komandas, kas jāizpilda
darītsPaskaidrojums:
- Cilpa 'while' sākas ar atslēgvārdu 'while', kam seko nosacījums kvadrātiekavās '[ ]'.
- Cilpas pamatteksts, kurā ir izpildāmās komandas, ir ietverts atslēgvārdos 'do' un 'done'.
- Cilpa vispirms pārbauda stāvokli. Ja nosacījums ir patiess, tiek izpildītas komandas cilpas pamattekstā. Kad cilpas pamatteksts ir izpildīts, nosacījums tiek pārbaudīts vēlreiz, un process atkārtojas, līdz nosacījums kļūst nepatiess.
Piemērs: Ja vēlamies izdrukāt skaitļus no 1 līdz 5
#!/bin/bash
skaitītājs=1
while [ $counter -le 5 ]; darīt
atbalss Skaitlis: $skaitītājs
skaitītājs=$((skaitītājs + 1))
darītsPaskaidrojums:
- Skaitītāja mainīgais ir iestatīts uz 1.
- Cikla while pārbauda, vai skaitītāja vērtība ir mazāka vai vienāda ar 5. Kamēr šis nosacījums ir patiess, cilpa turpina izpildīt.
- Cilpas iekšpusē pašreizējā skaitītāja vērtība tiek izdrukāta, izmantojot atbalsi.
- Skaitītājs tiek palielināts par 1, izmantojot izteiksmi $((skaitītājs + 1)).
kamēr cilpa
24) Izveidojiet čaulas skriptu, kas atrod un uzskaita visus tukšos failus direktorijā.
Shell skripts, ko varat izmantot, lai atrastu un uzskaitītu visus tukšos failus direktorijā, izmantojot komandas 'find' un 'stat':
#!/bin/bash
directory=$1″
ja [ -z $direktorijs ]; tad
echo Lietojums: 0 USD
izeja 1
būtja [ ! -d $direktorijs ]; tad
echo Kļūda: “$ directory” nav derīgs direktorijs.
izeja 1
būt
echo Tukši faili $ direktorijā:
atrodiet $ directory -type f -tukšuPaskaidrojums:
- ` #!/bin/bash `: To sauc par shebang, un tas liek operētājsistēmai izmantot Bash apvalku, lai interpretētu un izpildītu skriptu.
- ` directory=$1″ `: šī rinda piešķir pirmo komandrindas argumentu (apzīmēts ar $1) mainīgajam ` direktoriju `.
- ` ja [ -z $direktorijs ]; tad `: šī rinda sāk if priekšrakstu, kas pārbauda, vai ` direktoriju ` mainīgais ir tukšs (-z pārbauda tukšu virkni).
- ` echo Lietojums: 0 USD `: ja direktorijs ir tukšs, šajā rindā tiek izdrukāts lietošanas ziņojums, kur ` 0 $ ` apzīmē skripta nosaukumu.
- ` izeja 1 `: šī rinda iziet no skripta ar izejas kodu ` 1 `, kas norāda uz kļūdu.
- ` būt `: šī rinda iezīmē ` beigas ja ` paziņojums.
- ` ja [ ! -d $direktorijs ]; tad `: Tas sāk citu if priekšrakstu, lai pārbaudītu, vai norādītais direktorijs eksistē (` -d ` pārbauda direktoriju).
- ` echo Kļūda: “$ directory” nav derīgs direktorijs. `: ja norādītais direktorijs neeksistē, šī rinda izdrukā kļūdas ziņojumu.
- ` izeja 1 `: iziet no skripta ar izejas kodu ` 1 `.
- ` būt `: atzīmē otrās beigas ja` paziņojums, apgalvojums.
- ` echo Tukši faili $ direktorijā: `: Ja viss līdz šim ir derīgs, šajā rindā tiek izdrukāts ziņojums, kas norāda, ka skripts norādītajā direktorijā uzskaitīs tukšus failus.
- ` atrodiet $ directory -type f -tukšu `: šajā rindā tiek izmantots ` atrast ` komandu, lai meklētu tukšus failus (` - tukšs `) parastie faili (` - tipa f `) norādītajā direktorijā. Pēc tam tiek uzskaitīti šie tukšie faili.
Tukšu failu atrašana
Piezīme : mums ir jānorāda direktorijs kā arguments, izpildot skriptu. Šeit mēs esam izmantojuši pašreizējā direktorija home/jayeshkumar/ ceļu
25) Kāds ir lasīšanas komandas mērķis čaulas skriptēšanā?
Lasīšanas komanda čaulas skriptēšanā ļauj skriptam lūgt jums informāciju. Tas ir tāpat kā tad, kad dators uzdod jums jautājumu un gaida jūsu atbildi. Tas ir noderīgi skriptiem, kuros kaut kas jāievada, vai gadījumos, kad skriptam ir jāstrādā ar informāciju no failiem. Lasīšanas komanda palīdz skriptam apstāties un gaidīt, ko rakstāt, un pēc tam tā var izmantot šo informāciju, lai skriptā veiktu vairāk darbību.
Lasīšanas komandas sintakse:
read variable_name>
Piemērs : Ja mēs vēlamies lietot vārdu kā ievadi no lietotāja, lai to izdrukātu.
#!/bin/bash
echo Lūdzu, ievadiet savu vārdu:
lasīt vārdu
echo Sveiks, $name!lasīt nam
Rezumējot, lasīšanas komanda tiek izmantota, lai tvertu lietotāja ievadi vai datus no failiem čaulas skriptos, padarot skriptus interaktīvākus un daudzpusīgākus.
26) Uzrakstiet čaulas skriptu, kas pārvērš visus direktorijā esošo failu nosaukumus uz mazajiem burtiem.
Šeit ir čaulas skripts, kas pārvērš visus direktorijā esošo failu nosaukumus uz mazajiem burtiem.
#!/bin/bash
directory=$1″
ja [ -z $direktorijs ]; tad
echo Lietojums: 0 USD
izeja 1
būtja [ ! -d $direktorijs ]; tad
echo Kļūda: “$ directory” nav derīgs direktorijs.
izeja 1
būtcd $direktorijs || izeja 1
failam *; darīt
if [ -f $fails ]; tad
newname=$(echo $file | tr ‘A-Z’ ‘a-z’)
[ $file != $newname ] && mv $fails $jaunsaukums
būt
darītsPaskaidrojums:
- #!/bin/bash : Šis ir shebang, kas norāda, ka skripts ir jāinterpretē, izmantojot Bash apvalku.
- directory=$1″ : šī rinda piešķir pirmo komandrindas argumentu mainīgo direktorijam.
- ja [ -z $direktorijs ]; tad : šī rinda pārbauda, vai direktorija mainīgais ir tukšs (palaižot skriptu, nav norādīts arguments).
- echo Lietojums: 0 USD : ja direktorijs ir tukšs, šajā rindā tiek izdrukāts lietošanas ziņojums ar skripta nosaukumu ($0).
- izeja 1 : šī rindiņa iziet no skripta ar izejas kodu 1, norādot, ka ir radusies kļūda.
- f i: tas iezīmē pirmā if paziņojuma beigas.
- ja [ ! -d $direktorijs ]; tad : šī rinda pārbauda, vai norādītais direktorijs neeksistē (-d pārbauda direktoriju).
- echo Kļūda: “$ directory” nav derīgs direktorijs. : ja norādītais direktorijs nepastāv, šī rinda izdrukā kļūdas ziņojumu.
- izeja 1 : iziet no skripta ar izejas kodu 1.
- būt : atzīmē otrā if paziņojuma beigas.
- cd $direktorijs || izeja 1 : maina pašreizējo darba direktoriju uz norādīto direktoriju. Ja direktorija maiņa neizdodas (piem., neesošs direktorijs), skripts tiek izvadīts ar kļūdas kodu.
- failam *; darīt: es failam *; darīt: izveido cilpu, kas atkārtojas pār visiem pašreizējā direktorija vienumiem (* atbilst visiem failu nosaukumiem).
- if [ -f $fails ]; tad : pārbauda, vai pašreizējās cilpas iterācijas vienums ir parasts fails (-f pārbauda parastu failu).
- newname=$(echo $file | tr ‘A-Z’ ‘a-z’) : pārvērš pašreizējo faila nosaukumu ($file) par mazajiem burtiem, izmantojot komandu tr, un saglabā rezultātu mainīgajā newname.
- [ $file != $newname ] && mv $fails $jaunsaukums : salīdzina sākotnējo faila nosaukumu ar jauno faila nosaukumu ar mazajiem burtiem. Ja tie atšķiras, tas pārdēvē failu, izmantojot komandu mv.
- būt : atzīmē iekšējā if paziņojuma beigas.
- darīts : atzīmē cilpas beigas.
Piezīme : mums ir jānorāda direktorijs kā arguments, izpildot skriptu. Šeit mēs esam izmantojuši pašreizējā direktorija home/jayeshkumar/test ceļu
27) Kā čaulas skriptā var izmantot aritmētiskās darbības?
Aritmētiskās darbības var veikt čaulas skriptā, izmantojot dažādas iebūvētās metodes. Apvalks nodrošina mehānismus vienkāršiem aritmētiskiem aprēķiniem, izmantojot aritmētisko izvēršanu, piemēram:
- Aritmētiskā izvēršana ($((…)))
- Izmantojot komandu expr
- Izmantojot Let Command
Šeit ir mūsu Shell skripts, kas izskaidro visas trīs aritmētisko darbību metodes.
#!/bin/bash
num1=10
num2=5#Aritmētiskā izvēršana ($((…)))
rezultāts=$((num1 + num2))
atbalss Summa: $rezultāts#Izmantojot komandu expr
summa=$(ekspr $num1 + $num2)
atbalss Summa: $ summa#Izmantojot Let Command
lai summa = num1 + num2
atbalss Summa: $ summaPaskaidrojums:
- #!/bin/bash : Šis ir shebang, kas norāda, ka skripts ir jāinterpretē, izmantojot Bash apvalku.
- `num1=10` un ` cipars2=5` : šīs rindas piešķir mainīgajiem ` vērtības 10 un 5 num1 ` un ` num2 `, attiecīgi.
- `#Aritmētiskā izvēršana ($((…)))` : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta aritmētiskā izvēršana.
- `rezultāts=$((num1 + num2))' : šajā rindā tiek izmantota aritmētiskā izvēršana, lai aprēķinātu ` summu num1 ` un ` num2 ` un saglabā rezultātu mapē ` rezultāts ` mainīgais.
- `atbalss Summa: $rezultāts` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` rezultāts ` mainīgais.
- #Izmantojot komandu expr : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta ` ekspr ` komanda aritmētiskām darbībām.
- `sum=$(ekspr $num1 + $num2)` : šajā rindā tiek izmantots ` ekspr ` komandu, lai aprēķinātu ` summu num1 ` un ` num2 ` un saglabā rezultātu mapē ` summa ` mainīgais. Ņemiet vērā, ka ` ekspr ` komanda prasa atstarpes ap operatoriem.
- `echo Sum: $sum` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` summa ` mainīgais.
- `#Izmantojot Let Command` : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta ` ļaut ` komanda aritmētiskām darbībām.
- 'atļaut summu = num1 + num2'. : šajā rindā tiek izmantots ` ļaut ` komandu, lai aprēķinātu ` summu num1 ` un ` num2 ` un piešķir rezultātu ` summa ` mainīgais. ` ļaut ` komanda neprasa atstarpes ap operatoriem.
- `echo Sum: $sum` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` summa ` mainīgais.
aritmētika
28) Izveidojiet skriptu, kas pārbauda, vai tīkla resursdators ir sasniedzams.
Šeit ir vienkāršs čaulas skripts, kas izmanto ping komandu, lai pārbaudītu, vai tīkla resursdators ir sasniedzams:
#!/bin/bash
saimniekdators = 1 $
ja [ -z $host ]; tad
echo Lietojums: 0 USD
izeja 1
būt
ping -c 4 $host
ja [ $? -ekv 0]; tad
echo $host ir sasniedzams.
cits
echo $host nav sasniedzams.
būtPaskaidrojums:
- Tas izmanto resursdatora nosaukumu vai IP adresi kā argumentu un pārbauda, vai arguments ir sniegts.
- Ja nav norādīts neviens arguments, tas parāda lietošanas ziņojumu un iziet.
- Tas izmanto ping komandu ar opciju -c 4, lai nosūtītu četrus ICMP atbalss pieprasījumus norādītajam resursdatoram.
- Pēc ping komandas palaišanas tā pārbauda izejas statusu ($?). Ja izejas statuss ir 0, tas nozīmē, ka resursdators ir sasniedzams un skripts izdrukā veiksmes ziņojumu. Pretējā gadījumā tas izdrukā kļūdas ziņojumu.
Piezīme : mums ir jānorāda saimniekdatora nosaukums kā arguments, palaižot skriptu. Šeit mēs esam izmantojuši google.com
29) Uzrakstiet čaulas skriptu, lai atrastu lielāko masīva elementu:
Šeit ir čaulas skripts, lai atrastu lielāko elementu masīvā.
#!/bin/bash
# Deklarējiet masīvu
masīvs=(3 56 24 89 67)# Inicializējiet mainīgo, lai saglabātu maksimālo vērtību, sākot ar pirmo elementu
max=${masīvs[0]}
# Atkārtojiet caur masīvu
par num in ${array[@]}; darīt
# Salīdziniet katru elementu ar pašreizējo maksimumu
if ((skaits> max)); tad
max=$num
būt
darīts# Drukājiet maksimālo vērtību
echo Maksimālais elements masīvā ir: $max
Paskaidrojums:
- ` #!/bin/bash `: līnija shebang norāda, ka skripts ir jāinterpretē, izmantojot Bash čaulu.
- ` masīvs=(3 56 24 89 67) `: masīvs tiek deklarēts un inicializēts ar vērtībām.
- ` max=${masīvs[0]} `: “max” tiek inicializēts ar pirmo masīva elementu.
- ` par num in ${masīvs[@]}; darīt `: cilpa 'for' tiek izmantota, lai atkārtotu masīva elementus.
- ` if ((skaits> max)); tad `: paziņojums “if” pārbauda, vai pašreizējais elements “num” ir lielāks par pašreizējo maksimālo “max”.
- ` max=$num`: If`num “ir lielāks par “max”, “max” tiek atjaunināts ar vērtību num.
- ` darīts `: “for” cilpa ir aizvērta.
- ` echo Maksimālais elements masīvā ir: $max `: Visbeidzot, skripts izdrukā maksimālo masīvā atrasto vērtību.
lielākais skaitlis
30) Uzrakstiet skriptu, lai aprēķinātu masīva elementu summu.
#!/bin/bash
# Deklarējiet masīvu
masīvs=(1 65 22 19 94)
# Inicializējiet mainīgo, lai saglabātu summu
summa=0
# Atkārtojiet masīvu un pievienojiet katru elementu summai
par num in ${array[@]}; darīt
am=$((am + am))
darīts# Izdrukājiet summu
echo Elementu summa masīvā ir: $summa
Paskaidrojums:
` #!/bin/bash `: līnija shebang norāda, ka skripts ir jāinterpretē, izmantojot Bash čaulu.
` masīvs=(1 65 22 19 94) `: masīvs tiek deklarēts un inicializēts ar vērtībām.
` summa=0 `:` summa ` tiek inicializēts uz nulli, lai saglabātu elementu summu.
` par num in ${masīvs[@]}; darīt `: A ` priekš ` cilpa tiek izmantota, lai atkārtotu masīva elementus.
` am=$((am + am)) `: cilpas iekšpusē katrs elements ` uz viena ` tiek pievienots ` summa ` mainīgais.
` darīts `: ` priekš ` cilpa ir aizvērta.
`echo Elementu summa masīvā ir: $sum`: Visbeidzot, skripts izdrukā visu masīva elementu summu.
Elementu summa
Uzziniet vairāk par Shell skriptiem
- Atšķirība starp apvalku un kodolu
- Atšķirība starp Bind Shell un Reverse Shell
- Ievads Linux Shell un Shell skriptēšanā
Secinājums
Mēs visi gudrinieki zinām, ka čaulas skripts ir ļoti noderīgs, lai palielinātu darba produktivitāti, kā arī ietaupītu laiku. Tātad, šajā rakstā mēs esam aplūkojuši 30 ļoti noderīgi un visvairāk conman čaulas skriptu piemēri . Mēs ceram, ka šī pilnīga rokasgrāmata par čaulas skriptu piemēru palīdzēs jums saprast visu par čaulas skriptiem.
- izeja 1 : šī rindiņa iziet no skripta ar izejas kodu 1, norādot, ka ir radusies kļūda.
- f i: tas iezīmē pirmā if paziņojuma beigas.
- ja [ ! -d $direktorijs ]; tad : šī rinda pārbauda, vai norādītais direktorijs neeksistē (-d pārbauda direktoriju).
- echo Kļūda: “$ directory” nav derīgs direktorijs. : ja norādītais direktorijs nepastāv, šī rinda izdrukā kļūdas ziņojumu.
- izeja 1 : iziet no skripta ar izejas kodu 1.
- būt : atzīmē otrā if paziņojuma beigas.
- cd $direktorijs || izeja 1 : maina pašreizējo darba direktoriju uz norādīto direktoriju. Ja direktorija maiņa neizdodas (piem., neesošs direktorijs), skripts tiek izvadīts ar kļūdas kodu.
- failam *; darīt: es failam *; darīt: izveido cilpu, kas atkārtojas pār visiem pašreizējā direktorija vienumiem (* atbilst visiem failu nosaukumiem).
- if [ -f $fails ]; tad : pārbauda, vai pašreizējās cilpas iterācijas vienums ir parasts fails (-f pārbauda parastu failu).
- newname=$(echo $file | tr ‘A-Z’ ‘a-z’) : pārvērš pašreizējo faila nosaukumu ($file) par mazajiem burtiem, izmantojot komandu tr, un saglabā rezultātu mainīgajā newname.
- [ $file != $newname ] && mv $fails $jaunsaukums : salīdzina sākotnējo faila nosaukumu ar jauno faila nosaukumu ar mazajiem burtiem. Ja tie atšķiras, tas pārdēvē failu, izmantojot komandu mv.
- būt : atzīmē iekšējā if paziņojuma beigas.
- darīts : atzīmē cilpas beigas.
Piezīme : mums ir jānorāda direktorijs kā arguments, izpildot skriptu. Šeit mēs esam izmantojuši pašreizējā direktorija home/jayeshkumar/test ceļu
27) Kā čaulas skriptā var izmantot aritmētiskās darbības?
Aritmētiskās darbības var veikt čaulas skriptā, izmantojot dažādas iebūvētās metodes. Apvalks nodrošina mehānismus vienkāršiem aritmētiskiem aprēķiniem, izmantojot aritmētisko izvēršanu, piemēram:
- Aritmētiskā izvēršana ($((…)))
- Izmantojot komandu expr
- Izmantojot Let Command
Šeit ir mūsu Shell skripts, kas izskaidro visas trīs aritmētisko darbību metodes.
#!/bin/bash
num1=10
num2=5#Aritmētiskā izvēršana ($((…)))
rezultāts=$((num1 + num2))
atbalss Summa: $rezultāts#Izmantojot komandu expr
summa=$(ekspr $num1 + $num2)
atbalss Summa: $ summa#Izmantojot Let Command
lai summa = num1 + num2
atbalss Summa: $ summa
Paskaidrojums:
- #!/bin/bash : Šis ir shebang, kas norāda, ka skripts ir jāinterpretē, izmantojot Bash apvalku.
- `num1=10` un ` cipars2=5` : šīs rindas piešķir mainīgajiem ` vērtības 10 un 5 num1 ` un ` num2 `, attiecīgi.
- `#Aritmētiskā izvēršana ($((…)))` : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta aritmētiskā izvēršana.
- `rezultāts=$((num1 + num2))' : šajā rindā tiek izmantota aritmētiskā izvēršana, lai aprēķinātu ` summu num1 ` un ` num2 ` un saglabā rezultātu mapē ` rezultāts ` mainīgais.
- `atbalss Summa: $rezultāts` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` rezultāts ` mainīgais.
- #Izmantojot komandu expr : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta ` ekspr ` komanda aritmētiskām darbībām.
- `sum=$(ekspr $num1 + $num2)` : šajā rindā tiek izmantots ` ekspr ` komandu, lai aprēķinātu ` summu num1 ` un ` num2 ` un saglabā rezultātu mapē ` summa ` mainīgais. Ņemiet vērā, ka ` ekspr ` komanda prasa atstarpes ap operatoriem.
- `echo Sum: $sum` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` summa ` mainīgais.
- `#Izmantojot Let Command` : Šis ir komentārs, kas norāda tās sadaļas sākumu, kurā parādīta ` ļaut ` komanda aritmētiskām darbībām.
- 'atļaut summu = num1 + num2'. : šajā rindā tiek izmantots ` ļaut ` komandu, lai aprēķinātu ` summu num1 ` un ` num2 ` un piešķir rezultātu ` summa ` mainīgais. ` ļaut ` komanda neprasa atstarpes ap operatoriem.
- `echo Sum: $sum` : šajā rindā tiek drukāta aprēķinātā summa, izmantojot vērtību, kas saglabāta laukā ` summa ` mainīgais.

aritmētika
28) Izveidojiet skriptu, kas pārbauda, vai tīkla resursdators ir sasniedzams.
Šeit ir vienkāršs čaulas skripts, kas izmanto ping komandu, lai pārbaudītu, vai tīkla resursdators ir sasniedzams:
#!/bin/bash
saimniekdators = 1 $
ja [ -z $host ]; tad
echo Lietojums: 0 USD
izeja 1
būt
ping -c 4 $host
ja [ $? -ekv 0]; tad
echo $host ir sasniedzams.
cits
echo $host nav sasniedzams.
būt
Paskaidrojums:
- Tas izmanto resursdatora nosaukumu vai IP adresi kā argumentu un pārbauda, vai arguments ir sniegts.
- Ja nav norādīts neviens arguments, tas parāda lietošanas ziņojumu un iziet.
- Tas izmanto ping komandu ar opciju -c 4, lai nosūtītu četrus ICMP atbalss pieprasījumus norādītajam resursdatoram.
- Pēc ping komandas palaišanas tā pārbauda izejas statusu ($?). Ja izejas statuss ir 0, tas nozīmē, ka resursdators ir sasniedzams un skripts izdrukā veiksmes ziņojumu. Pretējā gadījumā tas izdrukā kļūdas ziņojumu.
Piezīme : mums ir jānorāda saimniekdatora nosaukums kā arguments, palaižot skriptu. Šeit mēs esam izmantojuši google.com
29) Uzrakstiet čaulas skriptu, lai atrastu lielāko masīva elementu:
Šeit ir čaulas skripts, lai atrastu lielāko elementu masīvā.
#!/bin/bash
# Deklarējiet masīvu
masīvs=(3 56 24 89 67)# Inicializējiet mainīgo, lai saglabātu maksimālo vērtību, sākot ar pirmo elementu
max=${masīvs[0]}
# Atkārtojiet caur masīvu
par num in ${array[@]}; darīt
# Salīdziniet katru elementu ar pašreizējo maksimumu
if ((skaits> max)); tad
max=$num
būt
darīts# Drukājiet maksimālo vērtību
echo Maksimālais elements masīvā ir: $max
Paskaidrojums:
- ` #!/bin/bash `: līnija shebang norāda, ka skripts ir jāinterpretē, izmantojot Bash čaulu.
- ` masīvs=(3 56 24 89 67) `: masīvs tiek deklarēts un inicializēts ar vērtībām.
- ` max=${masīvs[0]} `: “max” tiek inicializēts ar pirmo masīva elementu.
- ` par num in ${masīvs[@]}; darīt `: cilpa 'for' tiek izmantota, lai atkārtotu masīva elementus.
- ` if ((skaits> max)); tad `: paziņojums “if” pārbauda, vai pašreizējais elements “num” ir lielāks par pašreizējo maksimālo “max”.
- ` max=$num`: If`num “ir lielāks par “max”, “max” tiek atjaunināts ar vērtību num.
- ` darīts `: “for” cilpa ir aizvērta.
- ` echo Maksimālais elements masīvā ir: $max `: Visbeidzot, skripts izdrukā maksimālo masīvā atrasto vērtību.

lielākais skaitlis
30) Uzrakstiet skriptu, lai aprēķinātu masīva elementu summu.
#!/bin/bash
# Deklarējiet masīvu
masīvs=(1 65 22 19 94)
# Inicializējiet mainīgo, lai saglabātu summu
xd xd nozīmesumma=0
# Atkārtojiet masīvu un pievienojiet katru elementu summai
par num in ${array[@]}; darīt
am=$((am + am))
darīts# Izdrukājiet summu
echo Elementu summa masīvā ir: $summa
Paskaidrojums:
` #!/bin/bash `: līnija shebang norāda, ka skripts ir jāinterpretē, izmantojot Bash čaulu.
` masīvs=(1 65 22 19 94) `: masīvs tiek deklarēts un inicializēts ar vērtībām.
` summa=0 `:` summa ` tiek inicializēts uz nulli, lai saglabātu elementu summu.
` par num in ${masīvs[@]}; darīt `: A ` priekš ` cilpa tiek izmantota, lai atkārtotu masīva elementus.
` am=$((am + am)) `: cilpas iekšpusē katrs elements ` uz viena ` tiek pievienots ` summa ` mainīgais.
` darīts `: ` priekš ` cilpa ir aizvērta.
`echo Elementu summa masīvā ir: $sum`: Visbeidzot, skripts izdrukā visu masīva elementu summu.

Elementu summa
Uzziniet vairāk par Shell skriptiem
- Atšķirība starp apvalku un kodolu
- Atšķirība starp Bind Shell un Reverse Shell
- Ievads Linux Shell un Shell skriptēšanā
Secinājums
Mēs visi gudrinieki zinām, ka čaulas skripts ir ļoti noderīgs, lai palielinātu darba produktivitāti, kā arī ietaupītu laiku. Tātad, šajā rakstā mēs esam aplūkojuši 30 ļoti noderīgi un visvairāk conman čaulas skriptu piemēri . Mēs ceram, ka šī pilnīga rokasgrāmata par čaulas skriptu piemēru palīdzēs jums saprast visu par čaulas skriptiem.