logo

Príklady skriptov Shell

Pre všetky linuxové distribúcie je skript shell ako čarovný prútik, ktorý automatizuje proces, šetrí používateľom čas a zvyšuje produktivitu. Tento tutoriál skriptovania vám predstaví 25 plusových príkladov skriptovania.

Ale predtým, než prejdeme k téme shell skriptovanie príklady, pochopme skript shellu a skutočné prípady použitia skriptovania shell.



Čo je Shell Script?

No, škrupina je a CLI ( tlmočník príkazového riadku ), ktorý beží v textovom okne, v ktorom môžu používatelia spravovať a spúšťať príkazy shellu. Na druhej strane, proces písania sady príkazov, ktoré sa majú vykonať v systéme Linux Súbor, ktorý obsahuje takéto inštrukcie, sa nazýva bash skript.

Použitie skriptov Shell

Nižšie sú uvedené niektoré bežné použitia skriptu Shell:

  • Automatizácia úloh - Môže sa použiť na automatizáciu opakujúcich sa úloh, ako sú pravidelné zálohy a úlohy inštalácie softvéru.
  • Prispôsobenie - Je možné použiť skripty shellu na navrhnutie prostredia príkazového riadku a jednoducho vykonať svoju úlohu podľa potrieb.
  • Správa súborov – Skripty shellu možno použiť aj na správu a manipuláciu so súbormi a adresármi, ako je presúvanie, kopírovanie, premenovanie alebo odstraňovanie súborov.

Príklady skriptov Shell v systéme Linux

1) Čo znamená znak shebang (#!) na začiatku skriptu shellu?

The shebang (#!) na začiatku skriptu označuje interpret, ktorý by sa mal použiť na vykonanie skriptu. Hovorí systému, ktorý shell alebo interpret by mal interpretovať príkazy skriptu.



Napríklad: Predpokladajme, že máme pomenovaný skript myscript.sh napísané v shelli Bash:

výhody a nevýhody technológie
šebang

šebang

V tomto príklade:



  • #!/bin/bash na začiatku skriptu znamená, že skript by sa mal interpretovať pomocou shellu Bash.
  • Príkazy echo sa používajú na tlač správ do terminálu.

2) Ako spustíte skript shellu z príkazového riadku?

Ak chcete spustiť skript shellu z príkazového riadku, musíme vykonať tieto kroky:

  • Uistite sa, že súbor skriptu má spustiteľné povolenia pomocou príkaz chmod :
chmod +x myscript.sh>
  • Spustite skript pomocou jeho názvu súboru:
./myscript.sh>

Tu musíte vymeniť myscript.sh s vaším názvom skriptu.

3) Napíšte shell skript, ktorý vytlačí techcodeview.com do terminálu.

Vytvorte názov skriptu `myscript.sh` (používame ` pretože ` editor, môžete si vybrať ľubovoľný editor)

vim myscript.sh>

#!/bin/bash
# Tento skript vytlačí techcodeview.com do terminálu
echo techcodeview.com

vytlačiť meno

vytlačiť meno

Náš skript urobíme spustiteľným pomocou `chmod +x`, potom ho spustíme pomocou `./myscipt.sh` a získame požadovaný výstup techcodeview.com.

4) Vysvetlite účel príkazu echo v skriptovaní shellu.

The echo príkaz slúži na zobrazenie textu alebo premenných na termináli. Bežne sa používa na tlač správ, hodnôt premenných a generovanie výstupu programu.

434

echo príkaz

V tomto príklade sme spustili `echo` na termináli priamo, pretože to funguje rovnako v shell skripte.

5) Ako môžete priradiť hodnotu premennej v skripte shellu?

Premenným sa priraďujú hodnoty pomocou operátora priradenia =.

Napríklad:

#!/bin/bash
# Priradenie hodnoty premennej
meno=Jayesh
vek=21
echo $name $vek

Vysvetlenie:

  • Premennej názvu je priradená hodnota Jayesh.
  • Premennej veku je priradená hodnota 21.
  • echo sa používa na tlač a `$meno` `$vek` sa používa na volanie hodnoty uloženej v premenných.

435

6) Napíšte skript shellu, ktorý vezme meno používateľa ako vstup a pozdraví ho.

Vytvorte názov skriptu „example.sh“.

#!/bin/bash
# Opýtajte sa používateľa na jeho meno
echo Ako sa voláš?
prečítať meno
# Pozdravte používateľa
echo Ahoj, $name! Rád som ťa spoznal.

Vysvetlenie:

  • #!/bin/bash: Toto je línia Shebang. Hovorí systému, aby na spustenie skriptu použil interpret Bash.
  • # Opýtajte sa používateľa na jeho meno: Toto je komentár. Poskytuje kontext o pripravovanom kóde. Tlmočník ignoruje komentáre.
  • echo What’s your name?: Príkaz echo sa používa na zobrazenie textu v dvojitých úvodzovkách na termináli.
  • read name: Príkaz read čaká, kým užívateľ zadá text a uloží ho do názvu premennej.
  • echo Ahoj, $name! Teší ma.: Tento riadok používa príkaz echo na vytlačenie uvítacej správy, ktorá obsahuje hodnotu premennej názvu, ktorá bola zhromaždená zo vstupu používateľa.

436

7) Ako pridávate komentáre do shell skriptu?

Komentáre v skriptovaní shellu sa používajú na poskytnutie vysvetlení alebo kontextu kódu. Tlmočník ich ignoruje a sú určené len pre ľudí, ktorí čítajú scenár. Komentáre môžete pridať pomocou symbolu #.

#!/bin/bash
# Toto je komentár vysvetľujúci účel skriptu
echo gfg

8) Vytvorte shell skript, ktorý skontroluje, či súbor existuje v aktuálnom adresári.

Tu je skript, ktorý kontroluje, či v aktuálnom adresári existuje súbor s názvom example.txt:

#!/bin/bash
súbor=priklad.txt
# Skontrolujte, či súbor existuje
if [ -e $súbor ]; potom
echo Súbor existuje: $file
inak
echo Súbor nenájdený: $file
byť

Vysvetlenie:

  1. #!/bin/bash: Toto je riadok shebang, ktorý špecifikuje interpret (/bin/bash), ktorý sa má použiť na spustenie skriptu.
  2. file=example.txt: Tento riadok definuje súbor premennej a priraďuje jej hodnotu example.txt. Môžete ho nahradiť názvom súboru, ktorý chcete skontrolovať.
  3. if [ -e $súbor ]; potom: Tento riadok začína príkaz if. Podmienka [ -e $súbor ] skontroluje, či súbor zadaný hodnotou premennej súboru existuje. Príznak -e sa používa na kontrolu existencie súboru.
  4. echo Súbor existuje: $súbor: Ak je podmienka pravdivá (t. j. súbor existuje), na tomto riadku sa vypíše hlásenie, že súbor existuje, spolu s názvom súboru.
  5. else: Ak je podmienka nepravdivá (t. j. súbor neexistuje), skript spustí kód pod vetvou else.
  6. echo Súbor nenájdený: $súbor: Tento riadok vytlačí chybové hlásenie označujúce, že zadaný súbor sa nenašiel, spolu s názvom súboru.
  7. fi: Tento riadok označuje koniec príkazu if.
Hľadá sa súbor

Hľadá sa súbor

9) Aký je rozdiel medzi jednoduchými úvodzovkami (‘) a dvojitými úvodzovkami () v skriptovaní shellu?

Jednoduché úvodzovky (‘) a dvojité úvodzovky () sa používajú na uzavretie reťazcov v skriptovaní shellu, ale majú odlišné správanie:

  • Jednoduché úvodzovky: Všetko medzi jednoduchými úvodzovkami sa považuje za doslovný reťazec. Názvy premenných a väčšina špeciálnych znakov nie sú rozšírené.
  • Dvojité úvodzovky: Premenné a určité špeciálne znaky v úvodzovkách sú rozšírené. Obsah podlieha premennej substitúcii a substitúcii príkazov.

#!/bin/bash

abcd=Ahoj
echo ‘$abcd’ # Výstup: $abcd
echo $abcd # Výstup: Dobrý deň

10) Ako môžete použiť argumenty príkazového riadku v skripte shellu?

Argumenty príkazového riadku sú hodnoty poskytnuté skriptu pri jeho spustení. Je možné k nim pristupovať v rámci skriptu pomocou špeciálnych premenných ako , atď., kde predstavuje prvý argument, predstavuje druhý argument atď.

Napríklad: Ak je názov nášho skriptu v `example.sh`

#!/bin/bash

echo Názov skriptu:

Pre všetky linuxové distribúcie je skript shell ako čarovný prútik, ktorý automatizuje proces, šetrí používateľom čas a zvyšuje produktivitu. Tento tutoriál skriptovania vám predstaví 25 plusových príkladov skriptovania.

Ale predtým, než prejdeme k téme shell skriptovanie príklady, pochopme skript shellu a skutočné prípady použitia skriptovania shell.

Čo je Shell Script?

No, škrupina je a CLI ( tlmočník príkazového riadku ), ktorý beží v textovom okne, v ktorom môžu používatelia spravovať a spúšťať príkazy shellu. Na druhej strane, proces písania sady príkazov, ktoré sa majú vykonať v systéme Linux Súbor, ktorý obsahuje takéto inštrukcie, sa nazýva bash skript.

Použitie skriptov Shell

Nižšie sú uvedené niektoré bežné použitia skriptu Shell:

  • Automatizácia úloh - Môže sa použiť na automatizáciu opakujúcich sa úloh, ako sú pravidelné zálohy a úlohy inštalácie softvéru.
  • Prispôsobenie - Je možné použiť skripty shellu na navrhnutie prostredia príkazového riadku a jednoducho vykonať svoju úlohu podľa potrieb.
  • Správa súborov – Skripty shellu možno použiť aj na správu a manipuláciu so súbormi a adresármi, ako je presúvanie, kopírovanie, premenovanie alebo odstraňovanie súborov.

Príklady skriptov Shell v systéme Linux

1) Čo znamená znak shebang (#!) na začiatku skriptu shellu?

The shebang (#!) na začiatku skriptu označuje interpret, ktorý by sa mal použiť na vykonanie skriptu. Hovorí systému, ktorý shell alebo interpret by mal interpretovať príkazy skriptu.

Napríklad: Predpokladajme, že máme pomenovaný skript myscript.sh napísané v shelli Bash:

šebang

šebang

V tomto príklade:

  • #!/bin/bash na začiatku skriptu znamená, že skript by sa mal interpretovať pomocou shellu Bash.
  • Príkazy echo sa používajú na tlač správ do terminálu.

2) Ako spustíte skript shellu z príkazového riadku?

Ak chcete spustiť skript shellu z príkazového riadku, musíme vykonať tieto kroky:

  • Uistite sa, že súbor skriptu má spustiteľné povolenia pomocou príkaz chmod :
chmod +x myscript.sh>
  • Spustite skript pomocou jeho názvu súboru:
./myscript.sh>

Tu musíte vymeniť myscript.sh s vaším názvom skriptu.

3) Napíšte shell skript, ktorý vytlačí techcodeview.com do terminálu.

Vytvorte názov skriptu `myscript.sh` (používame ` pretože ` editor, môžete si vybrať ľubovoľný editor)

vim myscript.sh>

#!/bin/bash
# Tento skript vytlačí techcodeview.com do terminálu
echo techcodeview.com

vytlačiť meno

vytlačiť meno

Náš skript urobíme spustiteľným pomocou `chmod +x`, potom ho spustíme pomocou `./myscipt.sh` a získame požadovaný výstup techcodeview.com.

4) Vysvetlite účel príkazu echo v skriptovaní shellu.

The echo príkaz slúži na zobrazenie textu alebo premenných na termináli. Bežne sa používa na tlač správ, hodnôt premenných a generovanie výstupu programu.

434

echo príkaz

V tomto príklade sme spustili `echo` na termináli priamo, pretože to funguje rovnako v shell skripte.

5) Ako môžete priradiť hodnotu premennej v skripte shellu?

Premenným sa priraďujú hodnoty pomocou operátora priradenia =.

Napríklad:

#!/bin/bash
# Priradenie hodnoty premennej
meno=Jayesh
vek=21
echo $name $vek

Vysvetlenie:

  • Premennej názvu je priradená hodnota Jayesh.
  • Premennej veku je priradená hodnota 21.
  • echo sa používa na tlač a `$meno` `$vek` sa používa na volanie hodnoty uloženej v premenných.

435

6) Napíšte skript shellu, ktorý vezme meno používateľa ako vstup a pozdraví ho.

Vytvorte názov skriptu „example.sh“.

#!/bin/bash
# Opýtajte sa používateľa na jeho meno
echo Ako sa voláš?
prečítať meno
# Pozdravte používateľa
echo Ahoj, $name! Rád som ťa spoznal.

Vysvetlenie:

  • #!/bin/bash: Toto je línia Shebang. Hovorí systému, aby na spustenie skriptu použil interpret Bash.
  • # Opýtajte sa používateľa na jeho meno: Toto je komentár. Poskytuje kontext o pripravovanom kóde. Tlmočník ignoruje komentáre.
  • echo What’s your name?: Príkaz echo sa používa na zobrazenie textu v dvojitých úvodzovkách na termináli.
  • read name: Príkaz read čaká, kým užívateľ zadá text a uloží ho do názvu premennej.
  • echo Ahoj, $name! Teší ma.: Tento riadok používa príkaz echo na vytlačenie uvítacej správy, ktorá obsahuje hodnotu premennej názvu, ktorá bola zhromaždená zo vstupu používateľa.

436

7) Ako pridávate komentáre do shell skriptu?

Komentáre v skriptovaní shellu sa používajú na poskytnutie vysvetlení alebo kontextu kódu. Tlmočník ich ignoruje a sú určené len pre ľudí, ktorí čítajú scenár. Komentáre môžete pridať pomocou symbolu #.

#!/bin/bash
# Toto je komentár vysvetľujúci účel skriptu
echo gfg

8) Vytvorte shell skript, ktorý skontroluje, či súbor existuje v aktuálnom adresári.

Tu je skript, ktorý kontroluje, či v aktuálnom adresári existuje súbor s názvom example.txt:

#!/bin/bash
súbor=priklad.txt
# Skontrolujte, či súbor existuje
if [ -e $súbor ]; potom
echo Súbor existuje: $file
inak
echo Súbor nenájdený: $file
byť

Vysvetlenie:

  1. #!/bin/bash: Toto je riadok shebang, ktorý špecifikuje interpret (/bin/bash), ktorý sa má použiť na spustenie skriptu.
  2. file=example.txt: Tento riadok definuje súbor premennej a priraďuje jej hodnotu example.txt. Môžete ho nahradiť názvom súboru, ktorý chcete skontrolovať.
  3. if [ -e $súbor ]; potom: Tento riadok začína príkaz if. Podmienka [ -e $súbor ] skontroluje, či súbor zadaný hodnotou premennej súboru existuje. Príznak -e sa používa na kontrolu existencie súboru.
  4. echo Súbor existuje: $súbor: Ak je podmienka pravdivá (t. j. súbor existuje), na tomto riadku sa vypíše hlásenie, že súbor existuje, spolu s názvom súboru.
  5. else: Ak je podmienka nepravdivá (t. j. súbor neexistuje), skript spustí kód pod vetvou else.
  6. echo Súbor nenájdený: $súbor: Tento riadok vytlačí chybové hlásenie označujúce, že zadaný súbor sa nenašiel, spolu s názvom súboru.
  7. fi: Tento riadok označuje koniec príkazu if.
Hľadá sa súbor

Hľadá sa súbor

9) Aký je rozdiel medzi jednoduchými úvodzovkami (‘) a dvojitými úvodzovkami () v skriptovaní shellu?

Jednoduché úvodzovky (‘) a dvojité úvodzovky () sa používajú na uzavretie reťazcov v skriptovaní shellu, ale majú odlišné správanie:

  • Jednoduché úvodzovky: Všetko medzi jednoduchými úvodzovkami sa považuje za doslovný reťazec. Názvy premenných a väčšina špeciálnych znakov nie sú rozšírené.
  • Dvojité úvodzovky: Premenné a určité špeciálne znaky v úvodzovkách sú rozšírené. Obsah podlieha premennej substitúcii a substitúcii príkazov.

#!/bin/bash

abcd=Ahoj
echo ‘$abcd’ # Výstup: $abcd
echo $abcd # Výstup: Dobrý deň

10) Ako môžete použiť argumenty príkazového riadku v skripte shellu?

Argumenty príkazového riadku sú hodnoty poskytnuté skriptu pri jeho spustení. Je možné k nim pristupovať v rámci skriptu pomocou špeciálnych premenných ako $1, $2 atď., kde $1 predstavuje prvý argument, $2 predstavuje druhý argument atď.

Napríklad: Ak je názov nášho skriptu v `example.sh`

#!/bin/bash

echo Názov skriptu: $0
echo Prvý argument: $1
echo Druhý argument: $2

Ak spustíme skript s `.example.sh hello_1 hello_2`, vypíše:

cli argumenty

cli argumenty

11) Ako používate cyklus for na iteráciu cez zoznam hodnôt?

Vytvorte názov skriptu „example.sh“.

#!/bin/bash

ovocie = (jablko banán čerešňa dátum)
na ovocie v ${fruits[@]}; robiť
echo Aktuálne ovocie: $ovocie
hotový

Vysvetlenie:

Riadok `fruits=` vytvára pole s názvom ovocie so štyrmi prvkami: jablko, banán, čerešňa a dátum.

  • na ovocie v ${fruits[@]}; do: Tento riadok začína cyklus for. Čo znamenajú jednotlivé časti:
  • pre ovocie: Toto deklaruje premennú cyklu s názvom ovocie. V každej iterácii cyklu bude ovocie uchovávať hodnotu aktuálneho prvku z poľa ovocia.
  • ${fruits[@]}: Toto je rozšírenie poľa, ktoré preberá všetky prvky z poľa ovocia. Syntax ${…} zaisťuje, že s každým prvkom sa zaobchádza ako so samostatnou položkou.
  • do: Toto kľúčové slovo označuje začiatok tela slučky.
  • echo Aktuálne ovocie: $ovocie: Vo vnútri cyklu tento riadok používa príkaz echo na zobrazenie aktuálnej hodnoty premennej cyklu ovocie. Pre každé ovocie v poli vytlačí správu ako Aktuálne ovocie: jablko.
  • hotovo: Toto kľúčové slovo označuje koniec tela slučky. Oznamuje skriptu, že cyklus sa skončil.
pre slučku

pre slučku

12) Napíšte shellový skript, ktorý vypočíta súčet celých čísel od 1 do N pomocou cyklu.

Vytvorte názov skriptu „example.sh“.

#!/bin/bash

echo Zadajte číslo (N):
čítaj N
súčet=0
pre ((i=1; i<=$N; i++)); robiť
suma=$((súčet + i))
hotový
echo Súčet celých čísel od 1 do $N je: $súčet

Vysvetlenie:
Skript sa spustí požiadavkou na zadanie čísla (N) pomocou čítania. Toto číslo určí, koľkokrát sa slučka spustí.

  1. Premenná suma je inicializovaná na 0. Táto premenná bude sledovať súčet celých čísel.
  2. Cyklus for začína reťazcom for ((i=1; i<=$N; i++ )). Táto štruktúra slučky sa používa na opakovanie súboru akcií určitý počet krát, v tomto prípade od 1 do hodnoty N.
  3. Vo vnútri slučky sa dejú tieto veci:
    • i=1 nastaví premennú cyklu i na 1 na začiatku každej iterácie.
    • Podmienka cyklu i<=$N kontroluje, či je i stále menšie alebo rovné danému číslu N.
    • Ak je podmienka pravdivá, telo slučky sa vykoná.
    • sum=$((sum + i)) vypočíta novú hodnotu sumy tak, že k nej pripočíta aktuálnu hodnotu i. Toto spočíta celé čísla od 1 do aktuálnej hodnoty i.
  4. Po každej iterácii i++ zvýši hodnotu i o 1.
  5. Cyklus pokračuje, kým sa podmienka i<=$N nestane nepravdivou (keď sa i stane väčším ako N).
  6. Po dokončení cyklu skript zobrazí súčet celých čísel od 1 po zadané číslo N.

439

13) Vytvorte skript, ktorý hľadá konkrétne slovo v súbore a počíta jeho výskyty.

Vytvorte názov skriptu `word_count.sh`

#!/bin/bash

echo Zadajte slovo, ktoré chcete vyhľadať:
čítať cieľové_slovo
echo Zadajte názov súboru:
čítať názov súboru
počet=$(grep -o -w $cieľové_slovo $názov súboru | wc -l)
echo Slovo '$target_word' sa v '$filename' objavuje $počet krát.

Vysvetlenie:

  • echo Zadajte slovo, ktoré chcete vyhľadať:: Tento riadok zobrazí správu s výzvou na zadanie slova, ktoré chce v súbore vyhľadať.
  • read target_word: Tento riadok prečíta vstup poskytnutý používateľom a uloží ho do premennej s názvom target_word.
  • echo Zadajte názov súboru:: V tomto riadku sa zobrazí hlásenie s výzvou na zadanie názvu súboru, v ktorom chce hľadať.
  • read filename: Tento riadok prečíta vstup poskytnutý používateľom a uloží ho do premennej s názvom filename.
  • count=$(grep -o -w $cieľové_slovo $názov súboru | wc -l): Tento riadok vykonáva hlavnú prácu skriptu. Poďme si to rozobrať ďalej:
    • grep -o -w $cieľové_slovo $názov súboru: Táto časť príkazu hľadá výskyty cieľového_slova v zadanom súbore. Voľby -o a -w zabezpečia, že sa počítajú iba zhody celých slov.
    • |: Toto je roura, ktorá preberá výstup predchádzajúceho príkazu a posiela ho ako vstup pre nasledujúci príkaz.
    • wc -l: Táto časť príkazu používa príkaz wc na počítanie počtu riadkov na vstupe. Voľba -l konkrétne počíta riadky.
    • Celý príkaz vypočíta počet výskytov cieľového_slova v súbore a priradí tento počet premennej počet

441

14) Vysvetlite rozdiely medzi štandardným výstupom (stdout) a štandardnou chybou (stderr).

Hlavný rozdiel medzi štandardným výstupom (stdout) a štandardnou chybou (stderr) je nasledovný:

  • Štandardný výstup (štandardný výstup): Toto je predvolený výstupný tok, kam ide bežný výstup príkazu. Štandardne sa zobrazuje na termináli. Môžete ho presmerovať do súboru pomocou>.
  • Štandardná chyba (stderr): Toto je výstupný tok pre chybové správy a varovania. Štandardne sa zobrazuje aj na termináli. Môžete ho presmerovať do súboru pomocou 2>.

15) Vysvetlite pojem podmienené príkazy v shell skriptovaní.

Podmienené príkazy v skriptovaní shellu nám umožňujú robiť rozhodnutia a riadiť tok nášho skriptu na základe určitých podmienok. Umožňujú nášmu skriptu vykonávať rôzne sady príkazov v závislosti od toho, či je konkrétna podmienka pravdivá alebo nepravdivá. Primárne podmienené príkazy v skriptovaní shellu sú príkaz if, príkaz elif (voliteľný) a príkaz else (voliteľný).

Tu je základná štruktúra podmieneného príkazu v skriptovaní shellu:

ak [ podmienka ]; potom
# Príkazy na vykonanie, ak je podmienka pravdivá
elif [ ina_podmienka ]; potom
# Príkazy na vykonanie, ak je other_condition pravdivá (voliteľné)
inak
# Príkazy na vykonanie, ak nie je splnená žiadna z podmienok (voliteľné)
byť

Vysvetlenie:

  • [ podmienka ] = Príkaz, ktorý vyhodnotí podmienku a vráti pravdivý (0) alebo nepravdivý (nenulový) stav ukončenia.
  • then = Je to kľúčové slovo, ktoré označuje, že príkazy nasledujúce po ňom sa vykonajú, ak sa podmienka vyhodnotí ako pravdivá.
  • elif = (skratka pre else if) Je to sekcia, ktorá nám umožňuje špecifikovať dodatočné podmienky na kontrolu.
  • else = je to sekcia, ktorá obsahuje príkazy, ktoré sa vykonajú, ak nie je splnená žiadna z podmienok.
  • fi = Je to kľúčové slovo, ktoré označuje koniec podmieneného bloku.

16) Ako čítate riadky zo súboru v rámci shell skriptu?

Komu čítať riadky zo súboru v rámci skriptu shell, môžeme použiť rôzne metódy, ale jedným z bežných prístupov je použitie cyklu while v kombinácii s príkazom read. Môžeme to urobiť takto:

#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Skontrolujte, či súbor existuje
if [ -e $súbor ]; potom
while IFS= read -r riadok; robiť
echo Čítanie riadku: $riadok
# Tu pridajte svoju logiku spracovania
hotovo <$súbor
inak
echo Súbor nenájdený: $file
byť

Vysvetlenie:

  1. #!/bin/bash: Toto je riadok shebang, ktorý špecifikuje interpret (/bin/bash), ktorý sa má použiť na spustenie skriptu.
  2. file=/home/jayeshkumar/jayesh.txt: Tento riadok definuje súbor premenných a priraďuje úplnú cestu k súboru jayesh.txt v adresári /home/jayeshkumar. Zmeňte túto cestu tak, aby zodpovedala skutočnej ceste k súboru, ktorý chcete čítať.
  3. if [ -e $súbor ]; potom: Tento riadok začína príkaz if. Skontroluje, či súbor špecifikovaný premennou $file existuje. Príznak -e kontroluje existenciu súboru.
  4. while IFS= read -r riadok; do: Tento riadok spustí cyklus while, ktorý načíta riadky zo súboru.
    • IFS=: IFS (Interný oddeľovač polí) je nastavený na prázdnu hodnotu, aby sa zachovali medzery na začiatku a na konci.
    • read -r line: Prečíta aktuálny riadok zo súboru a uloží ho do riadku premennej.
  5. echo Čítanie riadku: $riadok: Tento riadok vytlačí obsah riadku, ktorý bol načítaný zo súboru. Premenná $line obsahuje obsah aktuálneho riadku.
  6. # Tu pridajte svoju logiku spracovania: Toto je zástupný komentár, kde môžete pridať svoju vlastnú logiku na spracovanie každého riadku. Môžete napríklad analyzovať riadok, extrahovať informácie alebo vykonávať špecifické akcie na základe obsahu.
  7. done <$file: Toto označuje koniec cyklu while. Súbor < $ presmeruje obsah súboru na čítanie v slučke.
  8. else: Ak súbor neexistuje (podmienka v príkaze if je nepravdivá), skript vykoná kód pod vetvou else.
  9. echo Súbor sa nenašiel: $súbor: Tento riadok vytlačí chybové hlásenie, že zadaný súbor sa nenašiel.
  10. fi: Tento riadok označuje koniec príkazu if.
čítanie súboru

čítanie súboru

Tu sme použili ` pwd ` na získanie cesty k aktuálnemu adresáru.

17) Napíšte funkciu v shell skripte, ktorý vypočíta faktoriál daného čísla.

Tu je ten skriptvypočítať faktoriáldaného čísla.

#!/bin/bash
# Definujte funkciu na výpočet faktoriálu
vypočítať_faktor() {
číslo = $ 1
fakt=1
pre ((i=1; i<=num; i++)); robiť
fakt=$((fakt * i))
hotový
echo $fakt
}
# Vyzvite používateľa, aby zadal číslo
echo Zadajte číslo:
čítať input_num
# Zavolajte funkciu vypočítať_faktor so vstupným číslom
factorial_result=$(vypočítať_faktor $vstupný_num)
# Zobrazte faktoriálny výsledok
echo Faktor z $input_num je: $factorial_result

Vysvetlenie:

  1. Skript začína riadkom shebang #!/bin/bash na určenie interpreta.
  2. vypočítať_faktor () je definovaný ako funkcia. Vyžaduje jeden argument, num, čo je číslo, pre ktoré je potrebné vypočítať faktoriál.
  3. Vo vnútri funkcie je fakt inicializovaný na 1. Táto premenná uloží výsledok faktoriálu.
  4. Cyklus for iteruje od 1 po zadané číslo (num). V každej iterácii vynásobí aktuálnu hodnotu faktu indexom slučky i.
  5. Po dokončení cyklu obsahuje premenná fakt vypočítaný faktoriál.
  6. Skript vyzve používateľa, aby zadal číslo pomocou čítania.
  7. Funkcia vypočítať_faktor sa volá s číslom zadaným používateľom a výsledok sa uloží do premennej faktorial_výsledok.
  8. Nakoniec skript zobrazí vypočítaný faktoriálny výsledok.
Faktorový

Faktorový

18) Ako spracovávate signály ako Ctrl+C v shell skripte?

V skripte shellu môžete spracovať signály ako Ctrl+C (známe aj ako SIGINT) pomocou príkazu trap. Ctrl+C vygeneruje signál SIGINT, keď ho používateľ stlačí na prerušenie spusteného skriptu alebo programu. Pomocou príkazu trap môžete špecifikovať akcie, ktoré sa majú vykonať pri prijatí konkrétneho signálu. Tu je návod, ako spracovávate signály ako Ctrl+C v skripte shellu:

#!/bin/bash
vyčistiť() {
echo Skript bol prerušený. Vykonáva sa čistenie…
# Tu pridajte svoje akcie čistenia
výstup 1
}
# Nastavte pascu na zavolanie funkcie čistenia po prijatí Ctrl+C (SIGINT).
čistenie pasce SIGINT
# Zvyšok vášho skriptu
echo Beží…
spať 10
echo Dokončené.

Spracovanie signálov je dôležité na to, aby boli skripty robustné a aby sa zabezpečilo, že budú elegantne zvládať neočakávané prerušenia. Funkciu čistenia si môžete prispôsobiť tak, aby zodpovedala vašim špecifickým potrebám, ako je zatváranie súborov, zastavenie procesov alebo zaznamenávanie informácií pred ukončením skriptu.

Vysvetlenie:

  1. #!/bin/bash: Tento riadok Shebang špecifikuje interpret, ktorý sa má použiť na spustenie skriptu.
  2. cleanup() { … }: Toto definuje funkciu s názvom cleanup. Do tejto funkcie môžete zahrnúť všetky akcie, ktoré je potrebné vykonať, keď je skript prerušený, ako napríklad zatvorenie súborov, uvoľnenie prostriedkov alebo vykonanie iných úloh čistenia.
  3. trap cleanup SIGINT: Príkaz trap sa používa na nastavenie obsluhy signálu. V tomto prípade špecifikuje, že po prijatí signálu SIGINT (Ctrl+C) by sa mala vykonať funkcia čistenia.
  4. echo Beží..., spánok 10, echo Dokončené.: Toto sú len ukážkové príkazy na simuláciu vykonávania skriptu.

446

19) Vytvorte skript, ktorý skontroluje a odstráni duplicitné riadky v textovom súbore.

Tu je náš linuxový skript, v ktorom odstránime duplicitné riadky z textového súboru.

#!/bin/bash
vstupný_súbor=vstup.txt
výstupný_súbor=výstup.txt
zoradiť $vstupný_súbor | uniq> $output_file
echo Duplicitné riadky boli úspešne odstránené.

Vysvetlenie:

  1. Skript začína znakom shebang (#!/bin/bash), ktorý označuje, že skript by sa mal interpretovať pomocou shellu Bash.
  2. Premenná input_file je nastavená na názov vstupného súboru obsahujúceho duplicitné riadky (zmeňte to na váš skutočný názov vstupného súboru).
  3. Premenná output_file je nastavená na názov výstupného súboru, z ktorého budú duplikáty odstránené (zmeňte ho na požadovaný názov výstupného súboru).
  4. Skript používa príkaz sort na triedenie riadkov vo vstupnom súbore. Triedenie riadkov zaisťuje, že duplicitné riadky sú zoskupené.
  5. Zoradené riadky potom prejdú cez príkaz uniq, ktorý odstráni po sebe idúce duplicitné riadky. Výstup tohto procesu je presmerovaný do výstupného súboru.
  6. Po odstránení duplikátov skript vytlačí správu o úspechu.
odstránenie duplicitných riadkov

odstránenie duplicitných riadkov

Tu používame ` kat ` na zobrazenie textu v textovom súbore.

20) Napíšte skript, ktorý vygeneruje bezpečné náhodné heslo.

Tu je náš skript na generovanie bezpečného náhodného hesla.

#!/bin/bash
# Funkcia na generovanie náhodného hesla
vygenerovať_heslo() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Zavolajte funkciu a uložte vygenerované heslo
heslo=$(generate_password)
echo Vygenerované heslo: $password

Poznámka: Používateľ môže zodpovedajúcim spôsobom zmeniť dĺžku hesla nahradením čísla `12`.

Vysvetlenie:

  1. Skript začína znakom shebang (#!/bin/bash), čo naznačuje, že by sa mal interpretovať pomocou shellu Bash.
  2. Funkcia create_password je definovaná na generovanie náhodného hesla. Funguje to takto:
    • tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
    • fold -w 12 rozdelí filtrované náhodné údaje na riadky so šírkou 12 znakov.
    • head -n 1 vyberie prvý riadok, čím nám efektívne poskytne náhodnú sekvenciu znakov s dĺžkou 12.
  3. Premenná hesla je priradená výsledku volania funkcie vygenerovať_heslo.
  4. Nakoniec sa vygenerované heslo zobrazí pomocou echo.

448

21) Napíšte skript shellu, ktorý vypočíta celkovú veľkosť všetkých súborov v adresári.

Tu je shell skript na výpočet celkovej veľkosti všetkých súborov v adresári.

#!/bin/bash
adresár=/cesta/k/vášmu/adresáru
total_size=$(du -csh $directory | grep total | awk ‘{print $1}’)
echo Celková veľkosť súborov v $adresári: $celková_veľkosť

Vysvetlenie:

  1. Skript začína znakom #!/bin/bash shebang, čo znamená, že by sa mal interpretovať pomocou shellu Bash.
  2. Premenná adresára je nastavená na cestu k adresáru, pre ktorý chcete vypočítať celkovú veľkosť súboru. Nahraďte /path/to/your/directory skutočnou cestou.
  3. Príkaz du sa používa na odhad využitia priestoru v súboroch. Použité možnosti sú:
    • -c: Vytvoriť celkový súčet.
    • -s: Zobrazí iba celkovú veľkosť zadaného adresára.
    • -h: Veľkosti tlače vo formáte čitateľnom pre ľudí (napr. KB, MB, GB).
  4. Výstup du je presmerovaný na grep total, aby sa odfiltroval riadok, ktorý obsahuje celkovú veľkosť.
  5. awk „{print $1}“ sa používa na extrahovanie prvého poľa (celkovej veľkosti) z riadku.
  6. Vypočítaná celková veľkosť je uložená v premennej total_size.
  7. Nakoniec skript zobrazí celkovú veľkosť pomocou echa.
Celková veľkosť súborov

Celková veľkosť súborov

Tu sme použili ` pwd `, aby ste videli aktuálnu cestu k adresáru.

22) Vysvetlite rozdiel medzi príkazmi if a elif v skriptovaní shellu.

Funkcia 'ak'Staiftement Vyhlásenie `elif`
Účel Vysvetlite rozdiel medzi príkazmi if a elif v skriptovaní shellu. Poskytuje alternatívne podmienky na kontrolu, keď je počiatočná podmienka, ak je nepravdivá.
použitie Používa sa pre počiatočný stav. Používa sa po počiatočnej podmienke if na kontrolu dodatočných podmienok.
počet Blokov Môže mať iba jeden blok if. Môže mať viacero blokov elif, ale iba jeden ďalší blok (voliteľné).
Poprava Ak je podmienka pravdivá, vykoná blok kódu spojený s príkazom if. Ak je podmienka nepravdivá, vykoná sa blok else (ak je prítomný) (voliteľné). Kontroluje každú podmienku elif v poradí. Ak je jedna podmienka elif pravdivá, vykoná sa zodpovedajúci blok kódu a skript ukončí celý podmienený blok. Ak nie je splnená žiadna z podmienok elif, vykoná sa blok else (ak je prítomný).
Vnorené štruktúry Môže byť vnorené do iných blokov if, elif alebo else. Nedá sa vnoriť do iného bloku elif, ale dá sa použiť vo vnútri bloku if alebo else.

Pochopme to na príklade.

#!/bin/bash
číslo = 5
if [ $číslo -gt 10 ]; potom
echo $číslo je väčšie ako 10
inak
echo $číslo nie je väčšie ako 10
byť
ozvena ———
if [ $číslo -gt 10 ]; potom
echo $číslo je väčšie ako 10
elif [ $číslo -ekv 10 ]; potom
echo $číslo sa rovná 10
inak
echo $číslo je menšie ako 10
byť

Vysvetlenie:

V tomto príklade prvý blok if kontroluje, či je číslo väčšie ako 10. Ak nie, vypíše správu, že číslo nie je väčšie ako 10. Druhý blok s príkazmi elif kontroluje viacero podmienok postupne, kým jedna z nich nie je pravdivá. V tomto prípade, keďže hodnota čísla je 5, výstup bude:

if_elif rozdiel

if_elif rozdiel

23) Ako používate slučku while na opakované vykonávanie príkazov?

Slučka while sa používa v skriptovaní shellu na opakované vykonávanie množiny príkazov, pokiaľ je zadaná podmienka pravdivá. Cyklus pokračuje vo vykonávaní príkazov, kým sa podmienka nestane falošnou.

Tu je základná syntax cyklu while:

pričom [ podmienka ]; robiť
# Príkazy, ktoré sa majú vykonať
hotový

Vysvetlenie:

  1. Cyklus „while“ začína kľúčovým slovom „while“, za ktorým nasleduje podmienka uzavretá v hranatých zátvorkách „[ ]“.
  2. Telo cyklu, ktoré obsahuje príkazy, ktoré sa majú vykonať, je uzavreté medzi kľúčovými slovami „do“ a „done“.
  3. Slučka najskôr skontroluje stav. Ak je podmienka pravdivá, vykonajú sa príkazy v tele cyklu. Po vykonaní tela slučky sa podmienka znova skontroluje a proces sa opakuje, kým sa podmienka nestane falošnou.

Príklad: Ak chceme vytlačiť čísla od 1 do 5

#!/bin/bash
počítadlo = 1
pričom [ $counter -le 5 ]; robiť
echo Číslo: $counter
počítadlo=$((počítadlo + 1))
hotový

Vysvetlenie:

  • Premenná počítadla je nastavená na 1.
  • Cyklus while kontroluje, či je hodnota počítadla menšia alebo rovná 5. Pokiaľ je táto podmienka pravdivá, cyklus pokračuje vo vykonávaní.
  • Vo vnútri slučky sa aktuálna hodnota počítadla vytlačí pomocou ozveny.
  • Počítadlo sa zvýši o 1 pomocou výrazu $(((počítadlo + 1)).
pričom slučka

pričom slučka

24) Vytvorte shell skript, ktorý nájde a vypíše všetky prázdne súbory v adresári.

Shell skript, ktorý môžete použiť na nájdenie a zoznam všetkých prázdnych súborov v adresári pomocou príkazov `find` a `stat`:

#!/bin/bash
adresár = $ 1″
if [ -z $adresar ]; potom
echo Použitie: $ 0
výstup 1
byť

ak [ ! -d $adresar ]; potom
echo Error: „$adresár“ nie je platný adresár.
výstup 1
byť
echo Prázdne súbory v $adresári:
nájsť $ adresár -typ f -prázdny

Vysvetlenie:

  1. ` #!/bin/bash `: Toto sa nazýva shebang a hovorí operačnému systému, aby použil shell Bash na interpretáciu a spustenie skriptu.
  2. ` adresár = $ 1″ `: Tento riadok priradí prvý argument príkazového riadka (označený $1) premennej ` adresár `.
  3. ` if [ -z $adresar ]; potom `: Tento riadok začína príkaz if, ktorý kontroluje, či je znak ` adresár ` premenná je prázdna (-z testuje prázdny reťazec).
  4. ` echo Použitie: $ 0 `: Ak je adresár prázdny, tento riadok vypíše správu o používaní, kde ` 0 USD ` predstavuje názov skriptu.
  5. ` výstup 1 `: Tento riadok ukončí skript s kódom ukončenia ` 1 `, čo znamená chybu.
  6. ` byť `: Tento riadok označuje koniec znaku ` ak ` vyhlásenie.
  7. ` ak [ ! -d $adresar ]; potom `: Toto spustí ďalší príkaz if na kontrolu, či poskytnutý adresár existuje (` -d ` testy pre adresár).
  8. ` echo Error: „$adresár“ nie je platný adresár. `: Ak poskytnutý adresár neexistuje, tento riadok vypíše chybové hlásenie.
  9. ` výstup 1 `: Ukončí skript s kódom ukončenia ` 1 `.
  10. ` byť `: Označuje koniec druhého ` ak' vyhlásenie.
  11. ` echo Prázdne súbory v $adresári: `: Ak je všetko doteraz platné, tento riadok vypíše správu, že skript vypíše prázdne súbory v zadanom adresári.
  12. ` nájsť $ adresár -typ f -prázdny `: Tento riadok používa znak ` Nájsť ` príkaz na vyhľadanie prázdnych súborov (` -prázdny `) typu bežné súbory (` - typ f `) v zadanom adresári. Potom vypíše zoznam týchto prázdnych súborov.
Hľadanie prázdnych súborov

Hľadanie prázdnych súborov

Poznámka : Pri spustení skriptu musíme ako argument zadať adresár. Tu sme použili cestu aktuálneho adresára home/jayeshkumar/

25) Aký je účel príkazu read v skriptovaní shellu?

Príkaz read v shell skriptovaní umožňuje skriptu požiadať vás o informácie. Je to ako keď vám počítač položí otázku a čaká na vašu odpoveď. Je to užitočné pre skripty, ktoré vyžadujú, aby ste niečo napísali, alebo keď skript potrebuje pracovať s informáciami zo súborov. Príkaz read pomáha skriptu zastaviť sa a čakať na to, čo napíšete, a potom môže tieto informácie použiť na vykonanie viacerých vecí v skripte.

Syntax príkazu read:

read variable_name>

Príklad : Ak chceme vziať meno ako vstup od užívateľa na jeho vytlačenie.

#!/bin/bash
echo Zadajte svoje meno:
prečítať meno
echo Ahoj, $name!

453

čítať meno

Stručne povedané, príkaz read sa používa na zachytenie používateľského vstupu alebo údajov zo súborov v rámci skriptov shellu, vďaka čomu sú skripty interaktívnejšie a všestrannejšie.

26) Napíšte shell skript, ktorý prevedie všetky názvy súborov v adresári na malé písmená.

Tu je skript shellu, ktorý prevádza všetky názvy súborov v adresári na malé písmená.

#!/bin/bash
adresár = $ 1″
if [ -z $adresar ]; potom
echo Použitie: $ 0
výstup 1
byť

ak [ ! -d $adresar ]; potom

echo Error: „$adresár“ nie je platný adresár.
výstup 1
byť

cd $ adresár || výstup 1

pre súbor vo formáte *; robiť
if [ -f $súbor ]; potom
newname=$(echo $file | tr ‘A-Z’ ‘a-z’)
[ $file != $newname ] && mv $file $newname
byť
hotový

Vysvetlenie:

  1. #!/bin/bash : Toto je shebang, ktorý určuje, že skript by sa mal interpretovať pomocou shellu Bash.
  2. adresár = $ 1″ : Tento riadok priradí prvý argument príkazového riadka k adresáru premenných.
  3. if [ -z $adresar ]; potom : Tento riadok kontroluje, či je premenná adresára prázdna (pri spustení skriptu nie je zadaný žiadny argument).
  4. echo Použitie: $ 0 : Ak je adresár prázdny, tento riadok vytlačí správu o používaní s názvom skriptu ($0).
  5. výstup 1 : Tento riadok ukončí skript s kódom ukončenia 1, čo znamená, že sa vyskytla chyba.
  6. f i: Toto označuje koniec prvého príkazu if.
  7. ak [ ! -d $adresar ]; potom : Tento riadok kontroluje, či zadaný adresár neexistuje (-d testuje adresár).
  8. echo Error: „$adresár“ nie je platný adresár. : Ak zadaný adresár neexistuje, tento riadok vypíše chybové hlásenie.
  9. výstup 1 : Ukončí skript s kódom ukončenia 1.
  10. byť : Označuje koniec druhého príkazu if.
  11. cd $ adresár || výstup 1 : Zmení aktuálny pracovný adresár na zadaný adresár. Ak zmena adresára zlyhá (napr. neexistujúci adresár), skript sa ukončí s chybovým kódom.
  12. pre súbor vo formáte *; urobiť: ja pre súbor vo formáte *; urobiť: spustí cyklus, ktorý iteruje cez všetky položky v aktuálnom adresári (* zodpovedá všetkým názvom súborov).
  13. if [ -f $súbor ]; potom : Kontroluje, či je aktuálna položka opakovania slučky bežný súbor (-f testuje bežný súbor).
  14. newname=$(echo $file | tr ‘A-Z’ ‘a-z’) : Skonvertuje aktuálny názov súboru ($file) na malé písmená pomocou príkazu tr a uloží výsledok do premennej newname.
  15. [ $file != $newname ] && mv $file $newname : Porovná pôvodný názov súboru s novým názvom súboru s malými písmenami. Ak sú odlišné, premenuje súbor pomocou príkazu mv.
  16. byť : Označuje koniec vnútorného príkazu if.
  17. hotový : Označuje koniec slučky.

454

Poznámka : Pri spustení skriptu musíme ako argument zadať adresár. Tu sme použili cestu aktuálneho adresára home/jayeshkumar/test

27) Ako môžete použiť aritmetické operácie v rámci shell skriptu?

Aritmetické operácie možno vykonávať v rámci skriptu shell pomocou rôznych vstavaných metód. Shell poskytuje mechanizmy pre jednoduché aritmetické výpočty pomocou aritmetickej expanzie ako:

  1. Aritmetické rozšírenie ($((…)))
  2. Použitie príkazu expr
  3. Pomocou príkazu let

Tu je náš skript Shell vysvetľujúci všetky tri metódy pre aritmetické operácie.

#!/bin/bash
číslo1=10
num2=5

#Aritmetická expanzia ($((…)))

výsledok=$((číslo1 + číslo2))
echo Súčet: $výsledok

#Pomocou príkazu expr

súčet=$(výraz $num1 + $num2)
echo Sum: $sum

#Pomocou príkazu let

nech súčet = číslo1 + číslo2
echo Sum: $sum

Vysvetlenie:

  1. `#!/bin/bash` : Toto je shebang, ktorý určuje, že skript by sa mal interpretovať pomocou shellu Bash.
  2. `num1=10` a ' číslo2=5` : Tieto riadky priraďujú hodnoty 10 a 5 premenným ` číslo1 ` a ` číslo2 `, resp.
  3. „#Aritmetická expanzia ($((…))“) : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje aritmetické rozšírenie.
  4. 'výsledok=$((číslo1 + číslo2))'. : Tento riadok používa aritmetické rozšírenie na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok uloží do súboru ` výsledok ` premenná.
  5. `echo Sum: $výsledok` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` výsledok ` premenná.
  6. `#Pomocou príkazu expr` : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje použitie ` expr ` príkaz pre aritmetické operácie.
  7. `suma=$(výraz $číslo1 + $num2)` : Tento riadok používa znak ` expr ` príkaz na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok uloží do súboru ` súčet ` premenná. Všimnite si, že ` expr ` príkaz vyžaduje medzery okolo operátorov.
  8. `echo Sum: $sum` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` súčet ` premenná.
  9. `#Pomocou príkazu let` : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje použitie ` nech ` príkaz pre aritmetické operácie.
  10. `nech súčet = číslo1 + číslo2″` : Tento riadok používa znak ` nech ` príkaz na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok priradí znaku ` súčet ` premenná. ' nech ` príkaz nevyžaduje medzery okolo operátorov.
  11. `echo Sum: $sum` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` súčet ` premenná.
aritmetika

aritmetika

28) Vytvorte skript, ktorý skontroluje, či je sieťový hostiteľ dostupný.

Tu je jednoduchý shell skript, ktorý používa príkaz ping na kontrolu, či je sieťový hostiteľ dostupný:

#!/bin/bash
hostiteľ = $ 1″
if [ -z $hostiteľ ]; potom
echo Použitie: $ 0
výstup 1
byť
ping -c 4 $hostiteľ

ak [ $? -ekv 0]; potom
echo $hostiteľ je dosiahnuteľný.
inak
echo $hostiteľ nie je dosiahnuteľný.
byť

Vysvetlenie:

  1. Ako argument berie názov hostiteľa alebo IP adresu a skontroluje, či je argument poskytnutý.
  2. Ak nie je zadaný žiadny argument, zobrazí sa správa o používaní a skončí sa.
  3. Používa príkaz ping s voľbou -c 4 na odoslanie štyroch požiadaviek na odozvu ICMP určenému hostiteľovi.
  4. Po spustení príkazu ping skontroluje stav ukončenia ($?). Ak je stav ukončenia 0, znamená to, že hostiteľ je dosiahnuteľný a skript vypíše správu o úspechu. V opačnom prípade vytlačí správu o zlyhaní.

456

Poznámka : Pri spúšťaní skriptu musíme zadať názov hostiteľa ako argument. Tu sme použili google.com

29) Napíšte skript Shell na nájdenie najväčšieho prvku v poli:

Tu je skript shellu na nájdenie najväčšieho prvku v poli.

#!/bin/bash
# Deklarujte pole
pole=(3 56 24 89 67)

# Inicializujte premennú na uloženie maximálnej hodnoty, počnúc prvým prvkom

max=${array[0]}

# Iterujte cez pole

pre číslo v ${array[@]}; robiť

# Porovnajte každý prvok s aktuálnym maximom

if ((počet> max)); potom
max=$num
byť
hotový

# Vytlačte maximálnu hodnotu

echo Maximálny prvok v poli je: $max

Vysvetlenie:

  1. ` #!/bin/bash `: Riadok shebang určuje, že skript by sa mal interpretovať pomocou shellu Bash.
  2. ` pole=(3 56 24 89 67) `: Pole je deklarované a inicializované hodnotami.
  3. ` max=${array[0]} `: `max` sa inicializuje prvým prvkom poľa.
  4. ` pre číslo v ${array[@]}; robiť `: Slučka `for` sa používa na iteráciu cez prvky poľa.
  5. ` if ((počet> max)); potom `: Príkaz `if` kontroluje, či je aktuálny prvok `num` väčší ako aktuálne maximum `max`.
  6. ` max=$num`: Ak `num ` je väčší ako `max`, `max` sa aktualizuje o hodnotu num.
  7. ` hotový `: Slučka `for` je uzavretá.
  8. ` echo Maximálny prvok v poli je: $max `: Nakoniec skript vypíše maximálnu hodnotu nájdenú v poli.
461

najväčší počet

30) Napíšte skript na výpočet súčtu prvkov v poli.

#!/bin/bash

# Deklarujte pole

pole=(1 65 22 19 94)

# Inicializujte premennú na uloženie súčtu

súčet=0

# Iterujte pole a pridajte každý prvok k súčtu

pre číslo v ${array[@]}; robiť
dopoludnia=$((dopoludnia + dopoludnia))
hotový

# Vytlačte sumu

echo Súčet prvkov v poli je: $sum

Vysvetlenie:

` #!/bin/bash `: Riadok shebang určuje, že skript by sa mal interpretovať pomocou shellu Bash.

` pole=(1 65 22 19 94) `: Pole je deklarované a inicializované hodnotami.

` súčet=0 `:` súčet ` sa inicializuje na nulu, aby udržal súčet prvkov.

` pre číslo v ${array[@]}; robiť `: A` pre ` slučka sa používa na iteráciu cez prvky poľa.

` dopoludnia=$((dopoludnia + dopoludnia)) `: Vo vnútri slučky každý prvok ` na jeden ` sa pridáva k ` súčet ` premenná.

` hotový `: ` pre ` slučka je uzavretá.

`echo Súčet prvkov v poli je: $sum`: Nakoniec skript vypíše súčet všetkých prvkov v poli.

462

Súčet prvkov

Zistite viac o skriptoch Shell

Záver

Všetci geekovia vieme, že skript shellu je veľmi užitočný na zvýšenie produktivity práce a zároveň šetrí čas. Takže v tomto článku sme sa zaoberali 30 príkladov veľmi užitočných a najpoužívanejších shellových skriptov . Dúfame, že vám tento úplný sprievodca príkladom skriptovania shellu pomôže pochopiť všetko o skriptoch shellu.




echo Prvý argument:
echo Druhý argument:

Ak spustíme skript s `.example.sh hello_1 hello_2`, vypíše:

cli argumenty

cli argumenty

11) Ako používate cyklus for na iteráciu cez zoznam hodnôt?

Vytvorte názov skriptu „example.sh“.

#!/bin/bash

ovocie = (jablko banán čerešňa dátum)
na ovocie v ${fruits[@]}; robiť
echo Aktuálne ovocie: $ovocie
hotový

Vysvetlenie:

Riadok `fruits=` vytvára pole s názvom ovocie so štyrmi prvkami: jablko, banán, čerešňa a dátum.

  • na ovocie v ${fruits[@]}; do: Tento riadok začína cyklus for. Čo znamenajú jednotlivé časti:
  • pre ovocie: Toto deklaruje premennú cyklu s názvom ovocie. V každej iterácii cyklu bude ovocie uchovávať hodnotu aktuálneho prvku z poľa ovocia.
  • ${fruits[@]}: Toto je rozšírenie poľa, ktoré preberá všetky prvky z poľa ovocia. Syntax ${…} zaisťuje, že s každým prvkom sa zaobchádza ako so samostatnou položkou.
  • do: Toto kľúčové slovo označuje začiatok tela slučky.
  • echo Aktuálne ovocie: $ovocie: Vo vnútri cyklu tento riadok používa príkaz echo na zobrazenie aktuálnej hodnoty premennej cyklu ovocie. Pre každé ovocie v poli vytlačí správu ako Aktuálne ovocie: jablko.
  • hotovo: Toto kľúčové slovo označuje koniec tela slučky. Oznamuje skriptu, že cyklus sa skončil.
pre slučku

pre slučku

12) Napíšte shellový skript, ktorý vypočíta súčet celých čísel od 1 do N pomocou cyklu.

Vytvorte názov skriptu „example.sh“.

#!/bin/bash

echo Zadajte číslo (N):
čítaj N
súčet=0
pre ((i=1; i<=$N; i++)); robiť
suma=$((súčet + i))
hotový
echo Súčet celých čísel od 1 do $N je: $súčet

Vysvetlenie:
Skript sa spustí požiadavkou na zadanie čísla (N) pomocou čítania. Toto číslo určí, koľkokrát sa slučka spustí.

  1. Premenná suma je inicializovaná na 0. Táto premenná bude sledovať súčet celých čísel.
  2. Cyklus for začína reťazcom for ((i=1; i<=$N; i++ )). Táto štruktúra slučky sa používa na opakovanie súboru akcií určitý počet krát, v tomto prípade od 1 do hodnoty N.
  3. Vo vnútri slučky sa dejú tieto veci:
    • i=1 nastaví premennú cyklu i na 1 na začiatku každej iterácie.
    • Podmienka cyklu i<=$N kontroluje, či je i stále menšie alebo rovné danému číslu N.
    • Ak je podmienka pravdivá, telo slučky sa vykoná.
    • sum=$((sum + i)) vypočíta novú hodnotu sumy tak, že k nej pripočíta aktuálnu hodnotu i. Toto spočíta celé čísla od 1 do aktuálnej hodnoty i.
  4. Po každej iterácii i++ zvýši hodnotu i o 1.
  5. Cyklus pokračuje, kým sa podmienka i<=$N nestane nepravdivou (keď sa i stane väčším ako N).
  6. Po dokončení cyklu skript zobrazí súčet celých čísel od 1 po zadané číslo N.

439

13) Vytvorte skript, ktorý hľadá konkrétne slovo v súbore a počíta jeho výskyty.

Vytvorte názov skriptu `word_count.sh`

#!/bin/bash

echo Zadajte slovo, ktoré chcete vyhľadať:
čítať cieľové_slovo
echo Zadajte názov súboru:
čítať názov súboru
počet=$(grep -o -w $cieľové_slovo $názov súboru | wc -l)
echo Slovo '$target_word' sa v '$filename' objavuje $počet krát.

Vysvetlenie:

  • echo Zadajte slovo, ktoré chcete vyhľadať:: Tento riadok zobrazí správu s výzvou na zadanie slova, ktoré chce v súbore vyhľadať.
  • read target_word: Tento riadok prečíta vstup poskytnutý používateľom a uloží ho do premennej s názvom target_word.
  • echo Zadajte názov súboru:: V tomto riadku sa zobrazí hlásenie s výzvou na zadanie názvu súboru, v ktorom chce hľadať.
  • read filename: Tento riadok prečíta vstup poskytnutý používateľom a uloží ho do premennej s názvom filename.
  • count=$(grep -o -w $cieľové_slovo $názov súboru | wc -l): Tento riadok vykonáva hlavnú prácu skriptu. Poďme si to rozobrať ďalej:
    • grep -o -w $cieľové_slovo $názov súboru: Táto časť príkazu hľadá výskyty cieľového_slova v zadanom súbore. Voľby -o a -w zabezpečia, že sa počítajú iba zhody celých slov.
    • |: Toto je roura, ktorá preberá výstup predchádzajúceho príkazu a posiela ho ako vstup pre nasledujúci príkaz.
    • wc -l: Táto časť príkazu používa príkaz wc na počítanie počtu riadkov na vstupe. Voľba -l konkrétne počíta riadky.
    • Celý príkaz vypočíta počet výskytov cieľového_slova v súbore a priradí tento počet premennej počet

441

14) Vysvetlite rozdiely medzi štandardným výstupom (stdout) a štandardnou chybou (stderr).

Hlavný rozdiel medzi štandardným výstupom (stdout) a štandardnou chybou (stderr) je nasledovný:

  • Štandardný výstup (štandardný výstup): Toto je predvolený výstupný tok, kam ide bežný výstup príkazu. Štandardne sa zobrazuje na termináli. Môžete ho presmerovať do súboru pomocou>.
  • Štandardná chyba (stderr): Toto je výstupný tok pre chybové správy a varovania. Štandardne sa zobrazuje aj na termináli. Môžete ho presmerovať do súboru pomocou 2>.

15) Vysvetlite pojem podmienené príkazy v shell skriptovaní.

Podmienené príkazy v skriptovaní shellu nám umožňujú robiť rozhodnutia a riadiť tok nášho skriptu na základe určitých podmienok. Umožňujú nášmu skriptu vykonávať rôzne sady príkazov v závislosti od toho, či je konkrétna podmienka pravdivá alebo nepravdivá. Primárne podmienené príkazy v skriptovaní shellu sú príkaz if, príkaz elif (voliteľný) a príkaz else (voliteľný).

Tu je základná štruktúra podmieneného príkazu v skriptovaní shellu:

ak [ podmienka ]; potom
# Príkazy na vykonanie, ak je podmienka pravdivá
elif [ ina_podmienka ]; potom
# Príkazy na vykonanie, ak je other_condition pravdivá (voliteľné)
inak
# Príkazy na vykonanie, ak nie je splnená žiadna z podmienok (voliteľné)
byť

Vysvetlenie:

  • [ podmienka ] = Príkaz, ktorý vyhodnotí podmienku a vráti pravdivý (0) alebo nepravdivý (nenulový) stav ukončenia.
  • then = Je to kľúčové slovo, ktoré označuje, že príkazy nasledujúce po ňom sa vykonajú, ak sa podmienka vyhodnotí ako pravdivá.
  • elif = (skratka pre else if) Je to sekcia, ktorá nám umožňuje špecifikovať dodatočné podmienky na kontrolu.
  • else = je to sekcia, ktorá obsahuje príkazy, ktoré sa vykonajú, ak nie je splnená žiadna z podmienok.
  • fi = Je to kľúčové slovo, ktoré označuje koniec podmieneného bloku.

16) Ako čítate riadky zo súboru v rámci shell skriptu?

Komu čítať riadky zo súboru v rámci skriptu shell, môžeme použiť rôzne metódy, ale jedným z bežných prístupov je použitie cyklu while v kombinácii s príkazom read. Môžeme to urobiť takto:

#!/bin/bash
file=/home/jayeshkumar/jayesh.txt
# Skontrolujte, či súbor existuje
if [ -e $súbor ]; potom
while IFS= read -r riadok; robiť
echo Čítanie riadku: $riadok
# Tu pridajte svoju logiku spracovania
hotovo <$súbor
inak
echo Súbor nenájdený: $file
byť

Vysvetlenie:

  1. #!/bin/bash: Toto je riadok shebang, ktorý špecifikuje interpret (/bin/bash), ktorý sa má použiť na spustenie skriptu.
  2. file=/home/jayeshkumar/jayesh.txt: Tento riadok definuje súbor premenných a priraďuje úplnú cestu k súboru jayesh.txt v adresári /home/jayeshkumar. Zmeňte túto cestu tak, aby zodpovedala skutočnej ceste k súboru, ktorý chcete čítať.
  3. if [ -e $súbor ]; potom: Tento riadok začína príkaz if. Skontroluje, či súbor špecifikovaný premennou $file existuje. Príznak -e kontroluje existenciu súboru.
  4. while IFS= read -r riadok; do: Tento riadok spustí cyklus while, ktorý načíta riadky zo súboru.
    • IFS=: IFS (Interný oddeľovač polí) je nastavený na prázdnu hodnotu, aby sa zachovali medzery na začiatku a na konci.
    • read -r line: Prečíta aktuálny riadok zo súboru a uloží ho do riadku premennej.
  5. echo Čítanie riadku: $riadok: Tento riadok vytlačí obsah riadku, ktorý bol načítaný zo súboru. Premenná $line obsahuje obsah aktuálneho riadku.
  6. # Tu pridajte svoju logiku spracovania: Toto je zástupný komentár, kde môžete pridať svoju vlastnú logiku na spracovanie každého riadku. Môžete napríklad analyzovať riadok, extrahovať informácie alebo vykonávať špecifické akcie na základe obsahu.
  7. done <$file: Toto označuje koniec cyklu while. Súbor < $ presmeruje obsah súboru na čítanie v slučke.
  8. else: Ak súbor neexistuje (podmienka v príkaze if je nepravdivá), skript vykoná kód pod vetvou else.
  9. echo Súbor sa nenašiel: $súbor: Tento riadok vytlačí chybové hlásenie, že zadaný súbor sa nenašiel.
  10. fi: Tento riadok označuje koniec príkazu if.
čítanie súboru

čítanie súboru

Tu sme použili ` pwd ` na získanie cesty k aktuálnemu adresáru.

17) Napíšte funkciu v shell skripte, ktorý vypočíta faktoriál daného čísla.

Tu je ten skriptvypočítať faktoriáldaného čísla.

#!/bin/bash
# Definujte funkciu na výpočet faktoriálu
vypočítať_faktor() {
číslo = $ 1
fakt=1
pre ((i=1; i<=num; i++)); robiť
fakt=$((fakt * i))
hotový
echo $fakt
}
# Vyzvite používateľa, aby zadal číslo
echo Zadajte číslo:
čítať input_num
# Zavolajte funkciu vypočítať_faktor so vstupným číslom
factorial_result=$(vypočítať_faktor $vstupný_num)
# Zobrazte faktoriálny výsledok
echo Faktor z $input_num je: $factorial_result

Vysvetlenie:

  1. Skript začína riadkom shebang #!/bin/bash na určenie interpreta.
  2. vypočítať_faktor () je definovaný ako funkcia. Vyžaduje jeden argument, num, čo je číslo, pre ktoré je potrebné vypočítať faktoriál.
  3. Vo vnútri funkcie je fakt inicializovaný na 1. Táto premenná uloží výsledok faktoriálu.
  4. Cyklus for iteruje od 1 po zadané číslo (num). V každej iterácii vynásobí aktuálnu hodnotu faktu indexom slučky i.
  5. Po dokončení cyklu obsahuje premenná fakt vypočítaný faktoriál.
  6. Skript vyzve používateľa, aby zadal číslo pomocou čítania.
  7. Funkcia vypočítať_faktor sa volá s číslom zadaným používateľom a výsledok sa uloží do premennej faktorial_výsledok.
  8. Nakoniec skript zobrazí vypočítaný faktoriálny výsledok.
Faktorový

Faktorový

18) Ako spracovávate signály ako Ctrl+C v shell skripte?

V skripte shellu môžete spracovať signály ako Ctrl+C (známe aj ako SIGINT) pomocou príkazu trap. Ctrl+C vygeneruje signál SIGINT, keď ho používateľ stlačí na prerušenie spusteného skriptu alebo programu. Pomocou príkazu trap môžete špecifikovať akcie, ktoré sa majú vykonať pri prijatí konkrétneho signálu. Tu je návod, ako spracovávate signály ako Ctrl+C v skripte shellu:

#!/bin/bash
vyčistiť() {
echo Skript bol prerušený. Vykonáva sa čistenie…
# Tu pridajte svoje akcie čistenia
výstup 1
}
# Nastavte pascu na zavolanie funkcie čistenia po prijatí Ctrl+C (SIGINT).
čistenie pasce SIGINT
# Zvyšok vášho skriptu
echo Beží…
spať 10
echo Dokončené.

Spracovanie signálov je dôležité na to, aby boli skripty robustné a aby sa zabezpečilo, že budú elegantne zvládať neočakávané prerušenia. Funkciu čistenia si môžete prispôsobiť tak, aby zodpovedala vašim špecifickým potrebám, ako je zatváranie súborov, zastavenie procesov alebo zaznamenávanie informácií pred ukončením skriptu.

Vysvetlenie:

  1. #!/bin/bash: Tento riadok Shebang špecifikuje interpret, ktorý sa má použiť na spustenie skriptu.
  2. cleanup() { … }: Toto definuje funkciu s názvom cleanup. Do tejto funkcie môžete zahrnúť všetky akcie, ktoré je potrebné vykonať, keď je skript prerušený, ako napríklad zatvorenie súborov, uvoľnenie prostriedkov alebo vykonanie iných úloh čistenia.
  3. trap cleanup SIGINT: Príkaz trap sa používa na nastavenie obsluhy signálu. V tomto prípade špecifikuje, že po prijatí signálu SIGINT (Ctrl+C) by sa mala vykonať funkcia čistenia.
  4. echo Beží..., spánok 10, echo Dokončené.: Toto sú len ukážkové príkazy na simuláciu vykonávania skriptu.

446

súbor json

19) Vytvorte skript, ktorý skontroluje a odstráni duplicitné riadky v textovom súbore.

Tu je náš linuxový skript, v ktorom odstránime duplicitné riadky z textového súboru.

#!/bin/bash
vstupný_súbor=vstup.txt
výstupný_súbor=výstup.txt
zoradiť $vstupný_súbor | uniq> $output_file
echo Duplicitné riadky boli úspešne odstránené.

Vysvetlenie:

  1. Skript začína znakom shebang (#!/bin/bash), ktorý označuje, že skript by sa mal interpretovať pomocou shellu Bash.
  2. Premenná input_file je nastavená na názov vstupného súboru obsahujúceho duplicitné riadky (zmeňte to na váš skutočný názov vstupného súboru).
  3. Premenná output_file je nastavená na názov výstupného súboru, z ktorého budú duplikáty odstránené (zmeňte ho na požadovaný názov výstupného súboru).
  4. Skript používa príkaz sort na triedenie riadkov vo vstupnom súbore. Triedenie riadkov zaisťuje, že duplicitné riadky sú zoskupené.
  5. Zoradené riadky potom prejdú cez príkaz uniq, ktorý odstráni po sebe idúce duplicitné riadky. Výstup tohto procesu je presmerovaný do výstupného súboru.
  6. Po odstránení duplikátov skript vytlačí správu o úspechu.
odstránenie duplicitných riadkov

odstránenie duplicitných riadkov

Tu používame ` kat ` na zobrazenie textu v textovom súbore.

20) Napíšte skript, ktorý vygeneruje bezpečné náhodné heslo.

Tu je náš skript na generovanie bezpečného náhodného hesla.

#!/bin/bash
# Funkcia na generovanie náhodného hesla
vygenerovať_heslo() {
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
}
# Zavolajte funkciu a uložte vygenerované heslo
heslo=$(generate_password)
echo Vygenerované heslo: $password

Poznámka: Používateľ môže zodpovedajúcim spôsobom zmeniť dĺžku hesla nahradením čísla `12`.

Vysvetlenie:

  1. Skript začína znakom shebang (#!/bin/bash), čo naznačuje, že by sa mal interpretovať pomocou shellu Bash.
  2. Funkcia create_password je definovaná na generovanie náhodného hesla. Funguje to takto:
    • tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
    • fold -w 12 rozdelí filtrované náhodné údaje na riadky so šírkou 12 znakov.
    • head -n 1 vyberie prvý riadok, čím nám efektívne poskytne náhodnú sekvenciu znakov s dĺžkou 12.
  3. Premenná hesla je priradená výsledku volania funkcie vygenerovať_heslo.
  4. Nakoniec sa vygenerované heslo zobrazí pomocou echo.

448

21) Napíšte skript shellu, ktorý vypočíta celkovú veľkosť všetkých súborov v adresári.

Tu je shell skript na výpočet celkovej veľkosti všetkých súborov v adresári.

#!/bin/bash
adresár=/cesta/k/vášmu/adresáru
total_size=$(du -csh $directory | grep total | awk ‘{print }’)
echo Celková veľkosť súborov v $adresári: $celková_veľkosť

Vysvetlenie:

  1. Skript začína znakom #!/bin/bash shebang, čo znamená, že by sa mal interpretovať pomocou shellu Bash.
  2. Premenná adresára je nastavená na cestu k adresáru, pre ktorý chcete vypočítať celkovú veľkosť súboru. Nahraďte /path/to/your/directory skutočnou cestou.
  3. Príkaz du sa používa na odhad využitia priestoru v súboroch. Použité možnosti sú:
    • -c: Vytvoriť celkový súčet.
    • -s: Zobrazí iba celkovú veľkosť zadaného adresára.
    • -h: Veľkosti tlače vo formáte čitateľnom pre ľudí (napr. KB, MB, GB).
  4. Výstup du je presmerovaný na grep total, aby sa odfiltroval riadok, ktorý obsahuje celkovú veľkosť.
  5. awk „{print }“ sa používa na extrahovanie prvého poľa (celkovej veľkosti) z riadku.
  6. Vypočítaná celková veľkosť je uložená v premennej total_size.
  7. Nakoniec skript zobrazí celkovú veľkosť pomocou echa.
Celková veľkosť súborov

Celková veľkosť súborov

Tu sme použili ` pwd `, aby ste videli aktuálnu cestu k adresáru.

22) Vysvetlite rozdiel medzi príkazmi if a elif v skriptovaní shellu.

Funkcia 'ak'Staiftement Vyhlásenie `elif`
Účel Vysvetlite rozdiel medzi príkazmi if a elif v skriptovaní shellu. Poskytuje alternatívne podmienky na kontrolu, keď je počiatočná podmienka, ak je nepravdivá.
použitie Používa sa pre počiatočný stav. Používa sa po počiatočnej podmienke if na kontrolu dodatočných podmienok.
počet Blokov Môže mať iba jeden blok if. Môže mať viacero blokov elif, ale iba jeden ďalší blok (voliteľné).
Poprava Ak je podmienka pravdivá, vykoná blok kódu spojený s príkazom if. Ak je podmienka nepravdivá, vykoná sa blok else (ak je prítomný) (voliteľné). Kontroluje každú podmienku elif v poradí. Ak je jedna podmienka elif pravdivá, vykoná sa zodpovedajúci blok kódu a skript ukončí celý podmienený blok. Ak nie je splnená žiadna z podmienok elif, vykoná sa blok else (ak je prítomný).
Vnorené štruktúry Môže byť vnorené do iných blokov if, elif alebo else. Nedá sa vnoriť do iného bloku elif, ale dá sa použiť vo vnútri bloku if alebo else.

Pochopme to na príklade.

#!/bin/bash
číslo = 5
if [ $číslo -gt 10 ]; potom
echo $číslo je väčšie ako 10
inak
echo $číslo nie je väčšie ako 10
byť
ozvena ———
if [ $číslo -gt 10 ]; potom
echo $číslo je väčšie ako 10
elif [ $číslo -ekv 10 ]; potom
echo $číslo sa rovná 10
inak
echo $číslo je menšie ako 10
byť

Vysvetlenie:

V tomto príklade prvý blok if kontroluje, či je číslo väčšie ako 10. Ak nie, vypíše správu, že číslo nie je väčšie ako 10. Druhý blok s príkazmi elif kontroluje viacero podmienok postupne, kým jedna z nich nie je pravdivá. V tomto prípade, keďže hodnota čísla je 5, výstup bude:

if_elif rozdiel

if_elif rozdiel

23) Ako používate slučku while na opakované vykonávanie príkazov?

Slučka while sa používa v skriptovaní shellu na opakované vykonávanie množiny príkazov, pokiaľ je zadaná podmienka pravdivá. Cyklus pokračuje vo vykonávaní príkazov, kým sa podmienka nestane falošnou.

Tu je základná syntax cyklu while:

pričom [ podmienka ]; robiť
# Príkazy, ktoré sa majú vykonať
hotový

Vysvetlenie:

  1. Cyklus „while“ začína kľúčovým slovom „while“, za ktorým nasleduje podmienka uzavretá v hranatých zátvorkách „[ ]“.
  2. Telo cyklu, ktoré obsahuje príkazy, ktoré sa majú vykonať, je uzavreté medzi kľúčovými slovami „do“ a „done“.
  3. Slučka najskôr skontroluje stav. Ak je podmienka pravdivá, vykonajú sa príkazy v tele cyklu. Po vykonaní tela slučky sa podmienka znova skontroluje a proces sa opakuje, kým sa podmienka nestane falošnou.

Príklad: Ak chceme vytlačiť čísla od 1 do 5

#!/bin/bash
počítadlo = 1
pričom [ $counter -le 5 ]; robiť
echo Číslo: $counter
počítadlo=$((počítadlo + 1))
hotový

Vysvetlenie:

java string.format
  • Premenná počítadla je nastavená na 1.
  • Cyklus while kontroluje, či je hodnota počítadla menšia alebo rovná 5. Pokiaľ je táto podmienka pravdivá, cyklus pokračuje vo vykonávaní.
  • Vo vnútri slučky sa aktuálna hodnota počítadla vytlačí pomocou ozveny.
  • Počítadlo sa zvýši o 1 pomocou výrazu $(((počítadlo + 1)).
pričom slučka

pričom slučka

24) Vytvorte shell skript, ktorý nájde a vypíše všetky prázdne súbory v adresári.

Shell skript, ktorý môžete použiť na nájdenie a zoznam všetkých prázdnych súborov v adresári pomocou príkazov `find` a `stat`:

#!/bin/bash
adresár = $ 1″
if [ -z $adresar ]; potom
echo Použitie: $ 0
výstup 1
byť

ak [ ! -d $adresar ]; potom
echo Error: „$adresár“ nie je platný adresár.
výstup 1
byť
echo Prázdne súbory v $adresári:
nájsť $ adresár -typ f -prázdny

Vysvetlenie:

  1. ` #!/bin/bash `: Toto sa nazýva shebang a hovorí operačnému systému, aby použil shell Bash na interpretáciu a spustenie skriptu.
  2. ` adresár = $ 1″ `: Tento riadok priradí prvý argument príkazového riadka (označený ) premennej ` adresár `.
  3. ` if [ -z $adresar ]; potom `: Tento riadok začína príkaz if, ktorý kontroluje, či je znak ` adresár ` premenná je prázdna (-z testuje prázdny reťazec).
  4. ` echo Použitie: $ 0 `: Ak je adresár prázdny, tento riadok vypíše správu o používaní, kde ` 0 USD ` predstavuje názov skriptu.
  5. ` výstup 1 `: Tento riadok ukončí skript s kódom ukončenia ` 1 `, čo znamená chybu.
  6. ` byť `: Tento riadok označuje koniec znaku ` ak ` vyhlásenie.
  7. ` ak [ ! -d $adresar ]; potom `: Toto spustí ďalší príkaz if na kontrolu, či poskytnutý adresár existuje (` -d ` testy pre adresár).
  8. ` echo Error: „$adresár“ nie je platný adresár. `: Ak poskytnutý adresár neexistuje, tento riadok vypíše chybové hlásenie.
  9. ` výstup 1 `: Ukončí skript s kódom ukončenia ` 1 `.
  10. ` byť `: Označuje koniec druhého ` ak' vyhlásenie.
  11. ` echo Prázdne súbory v $adresári: `: Ak je všetko doteraz platné, tento riadok vypíše správu, že skript vypíše prázdne súbory v zadanom adresári.
  12. ` nájsť $ adresár -typ f -prázdny `: Tento riadok používa znak ` Nájsť ` príkaz na vyhľadanie prázdnych súborov (` -prázdny `) typu bežné súbory (` - typ f `) v zadanom adresári. Potom vypíše zoznam týchto prázdnych súborov.
Hľadanie prázdnych súborov

Hľadanie prázdnych súborov

Poznámka : Pri spustení skriptu musíme ako argument zadať adresár. Tu sme použili cestu aktuálneho adresára home/jayeshkumar/

25) Aký je účel príkazu read v skriptovaní shellu?

Príkaz read v shell skriptovaní umožňuje skriptu požiadať vás o informácie. Je to ako keď vám počítač položí otázku a čaká na vašu odpoveď. Je to užitočné pre skripty, ktoré vyžadujú, aby ste niečo napísali, alebo keď skript potrebuje pracovať s informáciami zo súborov. Príkaz read pomáha skriptu zastaviť sa a čakať na to, čo napíšete, a potom môže tieto informácie použiť na vykonanie viacerých vecí v skripte.

Syntax príkazu read:

read variable_name>

Príklad : Ak chceme vziať meno ako vstup od užívateľa na jeho vytlačenie.

#!/bin/bash
echo Zadajte svoje meno:
prečítať meno
echo Ahoj, $name!

453

čítať meno

Stručne povedané, príkaz read sa používa na zachytenie používateľského vstupu alebo údajov zo súborov v rámci skriptov shellu, vďaka čomu sú skripty interaktívnejšie a všestrannejšie.

26) Napíšte shell skript, ktorý prevedie všetky názvy súborov v adresári na malé písmená.

Tu je skript shellu, ktorý prevádza všetky názvy súborov v adresári na malé písmená.

#!/bin/bash
adresár = $ 1″
if [ -z $adresar ]; potom
echo Použitie: $ 0
výstup 1
byť

ak [ ! -d $adresar ]; potom

echo Error: „$adresár“ nie je platný adresár.
výstup 1
byť

cd $ adresár || výstup 1

pre súbor vo formáte *; robiť
if [ -f $súbor ]; potom
newname=$(echo $file | tr ‘A-Z’ ‘a-z’)
[ $file != $newname ] && mv $file $newname
byť
hotový

Vysvetlenie:

  1. #!/bin/bash : Toto je shebang, ktorý určuje, že skript by sa mal interpretovať pomocou shellu Bash.
  2. adresár = $ 1″ : Tento riadok priradí prvý argument príkazového riadka k adresáru premenných.
  3. if [ -z $adresar ]; potom : Tento riadok kontroluje, či je premenná adresára prázdna (pri spustení skriptu nie je zadaný žiadny argument).
  4. echo Použitie: $ 0 : Ak je adresár prázdny, tento riadok vytlačí správu o používaní s názvom skriptu (

    Pre všetky linuxové distribúcie je skript shell ako čarovný prútik, ktorý automatizuje proces, šetrí používateľom čas a zvyšuje produktivitu. Tento tutoriál skriptovania vám predstaví 25 plusových príkladov skriptovania.

    Ale predtým, než prejdeme k téme shell skriptovanie príklady, pochopme skript shellu a skutočné prípady použitia skriptovania shell.

    Čo je Shell Script?

    No, škrupina je a CLI ( tlmočník príkazového riadku ), ktorý beží v textovom okne, v ktorom môžu používatelia spravovať a spúšťať príkazy shellu. Na druhej strane, proces písania sady príkazov, ktoré sa majú vykonať v systéme Linux Súbor, ktorý obsahuje takéto inštrukcie, sa nazýva bash skript.

    Použitie skriptov Shell

    Nižšie sú uvedené niektoré bežné použitia skriptu Shell:

    • Automatizácia úloh - Môže sa použiť na automatizáciu opakujúcich sa úloh, ako sú pravidelné zálohy a úlohy inštalácie softvéru.
    • Prispôsobenie - Je možné použiť skripty shellu na navrhnutie prostredia príkazového riadku a jednoducho vykonať svoju úlohu podľa potrieb.
    • Správa súborov – Skripty shellu možno použiť aj na správu a manipuláciu so súbormi a adresármi, ako je presúvanie, kopírovanie, premenovanie alebo odstraňovanie súborov.

    Príklady skriptov Shell v systéme Linux

    1) Čo znamená znak shebang (#!) na začiatku skriptu shellu?

    The shebang (#!) na začiatku skriptu označuje interpret, ktorý by sa mal použiť na vykonanie skriptu. Hovorí systému, ktorý shell alebo interpret by mal interpretovať príkazy skriptu.

    Napríklad: Predpokladajme, že máme pomenovaný skript myscript.sh napísané v shelli Bash:

    šebang

    šebang

    V tomto príklade:

    • #!/bin/bash na začiatku skriptu znamená, že skript by sa mal interpretovať pomocou shellu Bash.
    • Príkazy echo sa používajú na tlač správ do terminálu.

    2) Ako spustíte skript shellu z príkazového riadku?

    Ak chcete spustiť skript shellu z príkazového riadku, musíme vykonať tieto kroky:

    • Uistite sa, že súbor skriptu má spustiteľné povolenia pomocou príkaz chmod :
    chmod +x myscript.sh>
    • Spustite skript pomocou jeho názvu súboru:
    ./myscript.sh>

    Tu musíte vymeniť myscript.sh s vaším názvom skriptu.

    3) Napíšte shell skript, ktorý vytlačí techcodeview.com do terminálu.

    Vytvorte názov skriptu `myscript.sh` (používame ` pretože ` editor, môžete si vybrať ľubovoľný editor)

    vim myscript.sh>

    #!/bin/bash
    # Tento skript vytlačí techcodeview.com do terminálu
    echo techcodeview.com

    vytlačiť meno

    vytlačiť meno

    Náš skript urobíme spustiteľným pomocou `chmod +x`, potom ho spustíme pomocou `./myscipt.sh` a získame požadovaný výstup techcodeview.com.

    4) Vysvetlite účel príkazu echo v skriptovaní shellu.

    The echo príkaz slúži na zobrazenie textu alebo premenných na termináli. Bežne sa používa na tlač správ, hodnôt premenných a generovanie výstupu programu.

    434

    echo príkaz

    V tomto príklade sme spustili `echo` na termináli priamo, pretože to funguje rovnako v shell skripte.

    5) Ako môžete priradiť hodnotu premennej v skripte shellu?

    Premenným sa priraďujú hodnoty pomocou operátora priradenia =.

    Napríklad:

    #!/bin/bash
    # Priradenie hodnoty premennej
    meno=Jayesh
    vek=21
    echo $name $vek

    Vysvetlenie:

    • Premennej názvu je priradená hodnota Jayesh.
    • Premennej veku je priradená hodnota 21.
    • echo sa používa na tlač a `$meno` `$vek` sa používa na volanie hodnoty uloženej v premenných.

    435

    6) Napíšte skript shellu, ktorý vezme meno používateľa ako vstup a pozdraví ho.

    Vytvorte názov skriptu „example.sh“.

    #!/bin/bash
    # Opýtajte sa používateľa na jeho meno
    echo Ako sa voláš?
    prečítať meno
    # Pozdravte používateľa
    echo Ahoj, $name! Rád som ťa spoznal.

    Vysvetlenie:

    • #!/bin/bash: Toto je línia Shebang. Hovorí systému, aby na spustenie skriptu použil interpret Bash.
    • # Opýtajte sa používateľa na jeho meno: Toto je komentár. Poskytuje kontext o pripravovanom kóde. Tlmočník ignoruje komentáre.
    • echo What’s your name?: Príkaz echo sa používa na zobrazenie textu v dvojitých úvodzovkách na termináli.
    • read name: Príkaz read čaká, kým užívateľ zadá text a uloží ho do názvu premennej.
    • echo Ahoj, $name! Teší ma.: Tento riadok používa príkaz echo na vytlačenie uvítacej správy, ktorá obsahuje hodnotu premennej názvu, ktorá bola zhromaždená zo vstupu používateľa.

    436

    7) Ako pridávate komentáre do shell skriptu?

    Komentáre v skriptovaní shellu sa používajú na poskytnutie vysvetlení alebo kontextu kódu. Tlmočník ich ignoruje a sú určené len pre ľudí, ktorí čítajú scenár. Komentáre môžete pridať pomocou symbolu #.

    #!/bin/bash
    # Toto je komentár vysvetľujúci účel skriptu
    echo gfg

    8) Vytvorte shell skript, ktorý skontroluje, či súbor existuje v aktuálnom adresári.

    Tu je skript, ktorý kontroluje, či v aktuálnom adresári existuje súbor s názvom example.txt:

    #!/bin/bash
    súbor=priklad.txt
    # Skontrolujte, či súbor existuje
    if [ -e $súbor ]; potom
    echo Súbor existuje: $file
    inak
    echo Súbor nenájdený: $file
    byť

    Vysvetlenie:

    1. #!/bin/bash: Toto je riadok shebang, ktorý špecifikuje interpret (/bin/bash), ktorý sa má použiť na spustenie skriptu.
    2. file=example.txt: Tento riadok definuje súbor premennej a priraďuje jej hodnotu example.txt. Môžete ho nahradiť názvom súboru, ktorý chcete skontrolovať.
    3. if [ -e $súbor ]; potom: Tento riadok začína príkaz if. Podmienka [ -e $súbor ] skontroluje, či súbor zadaný hodnotou premennej súboru existuje. Príznak -e sa používa na kontrolu existencie súboru.
    4. echo Súbor existuje: $súbor: Ak je podmienka pravdivá (t. j. súbor existuje), na tomto riadku sa vypíše hlásenie, že súbor existuje, spolu s názvom súboru.
    5. else: Ak je podmienka nepravdivá (t. j. súbor neexistuje), skript spustí kód pod vetvou else.
    6. echo Súbor nenájdený: $súbor: Tento riadok vytlačí chybové hlásenie označujúce, že zadaný súbor sa nenašiel, spolu s názvom súboru.
    7. fi: Tento riadok označuje koniec príkazu if.
    Hľadá sa súbor

    Hľadá sa súbor

    9) Aký je rozdiel medzi jednoduchými úvodzovkami (‘) a dvojitými úvodzovkami () v skriptovaní shellu?

    Jednoduché úvodzovky (‘) a dvojité úvodzovky () sa používajú na uzavretie reťazcov v skriptovaní shellu, ale majú odlišné správanie:

    • Jednoduché úvodzovky: Všetko medzi jednoduchými úvodzovkami sa považuje za doslovný reťazec. Názvy premenných a väčšina špeciálnych znakov nie sú rozšírené.
    • Dvojité úvodzovky: Premenné a určité špeciálne znaky v úvodzovkách sú rozšírené. Obsah podlieha premennej substitúcii a substitúcii príkazov.

    #!/bin/bash

    abcd=Ahoj
    echo ‘$abcd’ # Výstup: $abcd
    echo $abcd # Výstup: Dobrý deň

    10) Ako môžete použiť argumenty príkazového riadku v skripte shellu?

    Argumenty príkazového riadku sú hodnoty poskytnuté skriptu pri jeho spustení. Je možné k nim pristupovať v rámci skriptu pomocou špeciálnych premenných ako $1, $2 atď., kde $1 predstavuje prvý argument, $2 predstavuje druhý argument atď.

    Napríklad: Ak je názov nášho skriptu v `example.sh`

    #!/bin/bash

    echo Názov skriptu: $0
    echo Prvý argument: $1
    echo Druhý argument: $2

    Ak spustíme skript s `.example.sh hello_1 hello_2`, vypíše:

    cli argumenty

    cli argumenty

    11) Ako používate cyklus for na iteráciu cez zoznam hodnôt?

    Vytvorte názov skriptu „example.sh“.

    #!/bin/bash

    ovocie = (jablko banán čerešňa dátum)
    na ovocie v ${fruits[@]}; robiť
    echo Aktuálne ovocie: $ovocie
    hotový

    Vysvetlenie:

    Riadok `fruits=` vytvára pole s názvom ovocie so štyrmi prvkami: jablko, banán, čerešňa a dátum.

    • na ovocie v ${fruits[@]}; do: Tento riadok začína cyklus for. Čo znamenajú jednotlivé časti:
    • pre ovocie: Toto deklaruje premennú cyklu s názvom ovocie. V každej iterácii cyklu bude ovocie uchovávať hodnotu aktuálneho prvku z poľa ovocia.
    • ${fruits[@]}: Toto je rozšírenie poľa, ktoré preberá všetky prvky z poľa ovocia. Syntax ${…} zaisťuje, že s každým prvkom sa zaobchádza ako so samostatnou položkou.
    • do: Toto kľúčové slovo označuje začiatok tela slučky.
    • echo Aktuálne ovocie: $ovocie: Vo vnútri cyklu tento riadok používa príkaz echo na zobrazenie aktuálnej hodnoty premennej cyklu ovocie. Pre každé ovocie v poli vytlačí správu ako Aktuálne ovocie: jablko.
    • hotovo: Toto kľúčové slovo označuje koniec tela slučky. Oznamuje skriptu, že cyklus sa skončil.
    pre slučku

    pre slučku

    12) Napíšte shellový skript, ktorý vypočíta súčet celých čísel od 1 do N pomocou cyklu.

    Vytvorte názov skriptu „example.sh“.

    #!/bin/bash

    echo Zadajte číslo (N):
    čítaj N
    súčet=0
    pre ((i=1; i<=$N; i++)); robiť
    suma=$((súčet + i))
    hotový
    echo Súčet celých čísel od 1 do $N je: $súčet

    Vysvetlenie:
    Skript sa spustí požiadavkou na zadanie čísla (N) pomocou čítania. Toto číslo určí, koľkokrát sa slučka spustí.

    1. Premenná suma je inicializovaná na 0. Táto premenná bude sledovať súčet celých čísel.
    2. Cyklus for začína reťazcom for ((i=1; i<=$N; i++ )). Táto štruktúra slučky sa používa na opakovanie súboru akcií určitý počet krát, v tomto prípade od 1 do hodnoty N.
    3. Vo vnútri slučky sa dejú tieto veci:
      • i=1 nastaví premennú cyklu i na 1 na začiatku každej iterácie.
      • Podmienka cyklu i<=$N kontroluje, či je i stále menšie alebo rovné danému číslu N.
      • Ak je podmienka pravdivá, telo slučky sa vykoná.
      • sum=$((sum + i)) vypočíta novú hodnotu sumy tak, že k nej pripočíta aktuálnu hodnotu i. Toto spočíta celé čísla od 1 do aktuálnej hodnoty i.
    4. Po každej iterácii i++ zvýši hodnotu i o 1.
    5. Cyklus pokračuje, kým sa podmienka i<=$N nestane nepravdivou (keď sa i stane väčším ako N).
    6. Po dokončení cyklu skript zobrazí súčet celých čísel od 1 po zadané číslo N.

    439

    13) Vytvorte skript, ktorý hľadá konkrétne slovo v súbore a počíta jeho výskyty.

    Vytvorte názov skriptu `word_count.sh`

    #!/bin/bash

    echo Zadajte slovo, ktoré chcete vyhľadať:
    čítať cieľové_slovo
    echo Zadajte názov súboru:
    čítať názov súboru
    počet=$(grep -o -w $cieľové_slovo $názov súboru | wc -l)
    echo Slovo '$target_word' sa v '$filename' objavuje $počet krát.

    Vysvetlenie:

    • echo Zadajte slovo, ktoré chcete vyhľadať:: Tento riadok zobrazí správu s výzvou na zadanie slova, ktoré chce v súbore vyhľadať.
    • read target_word: Tento riadok prečíta vstup poskytnutý používateľom a uloží ho do premennej s názvom target_word.
    • echo Zadajte názov súboru:: V tomto riadku sa zobrazí hlásenie s výzvou na zadanie názvu súboru, v ktorom chce hľadať.
    • read filename: Tento riadok prečíta vstup poskytnutý používateľom a uloží ho do premennej s názvom filename.
    • count=$(grep -o -w $cieľové_slovo $názov súboru | wc -l): Tento riadok vykonáva hlavnú prácu skriptu. Poďme si to rozobrať ďalej:
      • grep -o -w $cieľové_slovo $názov súboru: Táto časť príkazu hľadá výskyty cieľového_slova v zadanom súbore. Voľby -o a -w zabezpečia, že sa počítajú iba zhody celých slov.
      • |: Toto je roura, ktorá preberá výstup predchádzajúceho príkazu a posiela ho ako vstup pre nasledujúci príkaz.
      • wc -l: Táto časť príkazu používa príkaz wc na počítanie počtu riadkov na vstupe. Voľba -l konkrétne počíta riadky.
      • Celý príkaz vypočíta počet výskytov cieľového_slova v súbore a priradí tento počet premennej počet

    441

    14) Vysvetlite rozdiely medzi štandardným výstupom (stdout) a štandardnou chybou (stderr).

    Hlavný rozdiel medzi štandardným výstupom (stdout) a štandardnou chybou (stderr) je nasledovný:

    • Štandardný výstup (štandardný výstup): Toto je predvolený výstupný tok, kam ide bežný výstup príkazu. Štandardne sa zobrazuje na termináli. Môžete ho presmerovať do súboru pomocou>.
    • Štandardná chyba (stderr): Toto je výstupný tok pre chybové správy a varovania. Štandardne sa zobrazuje aj na termináli. Môžete ho presmerovať do súboru pomocou 2>.

    15) Vysvetlite pojem podmienené príkazy v shell skriptovaní.

    Podmienené príkazy v skriptovaní shellu nám umožňujú robiť rozhodnutia a riadiť tok nášho skriptu na základe určitých podmienok. Umožňujú nášmu skriptu vykonávať rôzne sady príkazov v závislosti od toho, či je konkrétna podmienka pravdivá alebo nepravdivá. Primárne podmienené príkazy v skriptovaní shellu sú príkaz if, príkaz elif (voliteľný) a príkaz else (voliteľný).

    Tu je základná štruktúra podmieneného príkazu v skriptovaní shellu:

    ak [ podmienka ]; potom
    # Príkazy na vykonanie, ak je podmienka pravdivá
    elif [ ina_podmienka ]; potom
    # Príkazy na vykonanie, ak je other_condition pravdivá (voliteľné)
    inak
    # Príkazy na vykonanie, ak nie je splnená žiadna z podmienok (voliteľné)
    byť

    Vysvetlenie:

    • [ podmienka ] = Príkaz, ktorý vyhodnotí podmienku a vráti pravdivý (0) alebo nepravdivý (nenulový) stav ukončenia.
    • then = Je to kľúčové slovo, ktoré označuje, že príkazy nasledujúce po ňom sa vykonajú, ak sa podmienka vyhodnotí ako pravdivá.
    • elif = (skratka pre else if) Je to sekcia, ktorá nám umožňuje špecifikovať dodatočné podmienky na kontrolu.
    • else = je to sekcia, ktorá obsahuje príkazy, ktoré sa vykonajú, ak nie je splnená žiadna z podmienok.
    • fi = Je to kľúčové slovo, ktoré označuje koniec podmieneného bloku.

    16) Ako čítate riadky zo súboru v rámci shell skriptu?

    Komu čítať riadky zo súboru v rámci skriptu shell, môžeme použiť rôzne metódy, ale jedným z bežných prístupov je použitie cyklu while v kombinácii s príkazom read. Môžeme to urobiť takto:

    #!/bin/bash
    file=/home/jayeshkumar/jayesh.txt
    # Skontrolujte, či súbor existuje
    if [ -e $súbor ]; potom
    while IFS= read -r riadok; robiť
    echo Čítanie riadku: $riadok
    # Tu pridajte svoju logiku spracovania
    hotovo <$súbor
    inak
    echo Súbor nenájdený: $file
    byť

    Vysvetlenie:

    1. #!/bin/bash: Toto je riadok shebang, ktorý špecifikuje interpret (/bin/bash), ktorý sa má použiť na spustenie skriptu.
    2. file=/home/jayeshkumar/jayesh.txt: Tento riadok definuje súbor premenných a priraďuje úplnú cestu k súboru jayesh.txt v adresári /home/jayeshkumar. Zmeňte túto cestu tak, aby zodpovedala skutočnej ceste k súboru, ktorý chcete čítať.
    3. if [ -e $súbor ]; potom: Tento riadok začína príkaz if. Skontroluje, či súbor špecifikovaný premennou $file existuje. Príznak -e kontroluje existenciu súboru.
    4. while IFS= read -r riadok; do: Tento riadok spustí cyklus while, ktorý načíta riadky zo súboru.
      • IFS=: IFS (Interný oddeľovač polí) je nastavený na prázdnu hodnotu, aby sa zachovali medzery na začiatku a na konci.
      • read -r line: Prečíta aktuálny riadok zo súboru a uloží ho do riadku premennej.
    5. echo Čítanie riadku: $riadok: Tento riadok vytlačí obsah riadku, ktorý bol načítaný zo súboru. Premenná $line obsahuje obsah aktuálneho riadku.
    6. # Tu pridajte svoju logiku spracovania: Toto je zástupný komentár, kde môžete pridať svoju vlastnú logiku na spracovanie každého riadku. Môžete napríklad analyzovať riadok, extrahovať informácie alebo vykonávať špecifické akcie na základe obsahu.
    7. done <$file: Toto označuje koniec cyklu while. Súbor < $ presmeruje obsah súboru na čítanie v slučke.
    8. else: Ak súbor neexistuje (podmienka v príkaze if je nepravdivá), skript vykoná kód pod vetvou else.
    9. echo Súbor sa nenašiel: $súbor: Tento riadok vytlačí chybové hlásenie, že zadaný súbor sa nenašiel.
    10. fi: Tento riadok označuje koniec príkazu if.
    čítanie súboru

    čítanie súboru

    Tu sme použili ` pwd ` na získanie cesty k aktuálnemu adresáru.

    17) Napíšte funkciu v shell skripte, ktorý vypočíta faktoriál daného čísla.

    Tu je ten skriptvypočítať faktoriáldaného čísla.

    #!/bin/bash
    # Definujte funkciu na výpočet faktoriálu
    vypočítať_faktor() {
    číslo = $ 1
    fakt=1
    pre ((i=1; i<=num; i++)); robiť
    fakt=$((fakt * i))
    hotový
    echo $fakt
    }
    # Vyzvite používateľa, aby zadal číslo
    echo Zadajte číslo:
    čítať input_num
    # Zavolajte funkciu vypočítať_faktor so vstupným číslom
    factorial_result=$(vypočítať_faktor $vstupný_num)
    # Zobrazte faktoriálny výsledok
    echo Faktor z $input_num je: $factorial_result

    Vysvetlenie:

    1. Skript začína riadkom shebang #!/bin/bash na určenie interpreta.
    2. vypočítať_faktor () je definovaný ako funkcia. Vyžaduje jeden argument, num, čo je číslo, pre ktoré je potrebné vypočítať faktoriál.
    3. Vo vnútri funkcie je fakt inicializovaný na 1. Táto premenná uloží výsledok faktoriálu.
    4. Cyklus for iteruje od 1 po zadané číslo (num). V každej iterácii vynásobí aktuálnu hodnotu faktu indexom slučky i.
    5. Po dokončení cyklu obsahuje premenná fakt vypočítaný faktoriál.
    6. Skript vyzve používateľa, aby zadal číslo pomocou čítania.
    7. Funkcia vypočítať_faktor sa volá s číslom zadaným používateľom a výsledok sa uloží do premennej faktorial_výsledok.
    8. Nakoniec skript zobrazí vypočítaný faktoriálny výsledok.
    Faktorový

    Faktorový

    18) Ako spracovávate signály ako Ctrl+C v shell skripte?

    V skripte shellu môžete spracovať signály ako Ctrl+C (známe aj ako SIGINT) pomocou príkazu trap. Ctrl+C vygeneruje signál SIGINT, keď ho používateľ stlačí na prerušenie spusteného skriptu alebo programu. Pomocou príkazu trap môžete špecifikovať akcie, ktoré sa majú vykonať pri prijatí konkrétneho signálu. Tu je návod, ako spracovávate signály ako Ctrl+C v skripte shellu:

    #!/bin/bash
    vyčistiť() {
    echo Skript bol prerušený. Vykonáva sa čistenie…
    # Tu pridajte svoje akcie čistenia
    výstup 1
    }
    # Nastavte pascu na zavolanie funkcie čistenia po prijatí Ctrl+C (SIGINT).
    čistenie pasce SIGINT
    # Zvyšok vášho skriptu
    echo Beží…
    spať 10
    echo Dokončené.

    Spracovanie signálov je dôležité na to, aby boli skripty robustné a aby sa zabezpečilo, že budú elegantne zvládať neočakávané prerušenia. Funkciu čistenia si môžete prispôsobiť tak, aby zodpovedala vašim špecifickým potrebám, ako je zatváranie súborov, zastavenie procesov alebo zaznamenávanie informácií pred ukončením skriptu.

    Vysvetlenie:

    1. #!/bin/bash: Tento riadok Shebang špecifikuje interpret, ktorý sa má použiť na spustenie skriptu.
    2. cleanup() { … }: Toto definuje funkciu s názvom cleanup. Do tejto funkcie môžete zahrnúť všetky akcie, ktoré je potrebné vykonať, keď je skript prerušený, ako napríklad zatvorenie súborov, uvoľnenie prostriedkov alebo vykonanie iných úloh čistenia.
    3. trap cleanup SIGINT: Príkaz trap sa používa na nastavenie obsluhy signálu. V tomto prípade špecifikuje, že po prijatí signálu SIGINT (Ctrl+C) by sa mala vykonať funkcia čistenia.
    4. echo Beží..., spánok 10, echo Dokončené.: Toto sú len ukážkové príkazy na simuláciu vykonávania skriptu.

    446

    19) Vytvorte skript, ktorý skontroluje a odstráni duplicitné riadky v textovom súbore.

    Tu je náš linuxový skript, v ktorom odstránime duplicitné riadky z textového súboru.

    #!/bin/bash
    vstupný_súbor=vstup.txt
    výstupný_súbor=výstup.txt
    zoradiť $vstupný_súbor | uniq> $output_file
    echo Duplicitné riadky boli úspešne odstránené.

    Vysvetlenie:

    1. Skript začína znakom shebang (#!/bin/bash), ktorý označuje, že skript by sa mal interpretovať pomocou shellu Bash.
    2. Premenná input_file je nastavená na názov vstupného súboru obsahujúceho duplicitné riadky (zmeňte to na váš skutočný názov vstupného súboru).
    3. Premenná output_file je nastavená na názov výstupného súboru, z ktorého budú duplikáty odstránené (zmeňte ho na požadovaný názov výstupného súboru).
    4. Skript používa príkaz sort na triedenie riadkov vo vstupnom súbore. Triedenie riadkov zaisťuje, že duplicitné riadky sú zoskupené.
    5. Zoradené riadky potom prejdú cez príkaz uniq, ktorý odstráni po sebe idúce duplicitné riadky. Výstup tohto procesu je presmerovaný do výstupného súboru.
    6. Po odstránení duplikátov skript vytlačí správu o úspechu.
    odstránenie duplicitných riadkov

    odstránenie duplicitných riadkov

    Tu používame ` kat ` na zobrazenie textu v textovom súbore.

    20) Napíšte skript, ktorý vygeneruje bezpečné náhodné heslo.

    Tu je náš skript na generovanie bezpečného náhodného hesla.

    #!/bin/bash
    # Funkcia na generovanie náhodného hesla
    vygenerovať_heslo() {
    tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
    }
    # Zavolajte funkciu a uložte vygenerované heslo
    heslo=$(generate_password)
    echo Vygenerované heslo: $password

    Poznámka: Používateľ môže zodpovedajúcim spôsobom zmeniť dĺžku hesla nahradením čísla `12`.

    Vysvetlenie:

    1. Skript začína znakom shebang (#!/bin/bash), čo naznačuje, že by sa mal interpretovať pomocou shellu Bash.
    2. Funkcia create_password je definovaná na generovanie náhodného hesla. Funguje to takto:
      • tr -dc 'A-Za-z0-9!@#$%^&*()_+{}[]'
      • fold -w 12 rozdelí filtrované náhodné údaje na riadky so šírkou 12 znakov.
      • head -n 1 vyberie prvý riadok, čím nám efektívne poskytne náhodnú sekvenciu znakov s dĺžkou 12.
    3. Premenná hesla je priradená výsledku volania funkcie vygenerovať_heslo.
    4. Nakoniec sa vygenerované heslo zobrazí pomocou echo.

    448

    21) Napíšte skript shellu, ktorý vypočíta celkovú veľkosť všetkých súborov v adresári.

    Tu je shell skript na výpočet celkovej veľkosti všetkých súborov v adresári.

    #!/bin/bash
    adresár=/cesta/k/vášmu/adresáru
    total_size=$(du -csh $directory | grep total | awk ‘{print $1}’)
    echo Celková veľkosť súborov v $adresári: $celková_veľkosť

    Vysvetlenie:

    1. Skript začína znakom #!/bin/bash shebang, čo znamená, že by sa mal interpretovať pomocou shellu Bash.
    2. Premenná adresára je nastavená na cestu k adresáru, pre ktorý chcete vypočítať celkovú veľkosť súboru. Nahraďte /path/to/your/directory skutočnou cestou.
    3. Príkaz du sa používa na odhad využitia priestoru v súboroch. Použité možnosti sú:
      • -c: Vytvoriť celkový súčet.
      • -s: Zobrazí iba celkovú veľkosť zadaného adresára.
      • -h: Veľkosti tlače vo formáte čitateľnom pre ľudí (napr. KB, MB, GB).
    4. Výstup du je presmerovaný na grep total, aby sa odfiltroval riadok, ktorý obsahuje celkovú veľkosť.
    5. awk „{print $1}“ sa používa na extrahovanie prvého poľa (celkovej veľkosti) z riadku.
    6. Vypočítaná celková veľkosť je uložená v premennej total_size.
    7. Nakoniec skript zobrazí celkovú veľkosť pomocou echa.
    Celková veľkosť súborov

    Celková veľkosť súborov

    Tu sme použili ` pwd `, aby ste videli aktuálnu cestu k adresáru.

    22) Vysvetlite rozdiel medzi príkazmi if a elif v skriptovaní shellu.

    Funkcia 'ak'Staiftement Vyhlásenie `elif`
    Účel Vysvetlite rozdiel medzi príkazmi if a elif v skriptovaní shellu. Poskytuje alternatívne podmienky na kontrolu, keď je počiatočná podmienka, ak je nepravdivá.
    použitie Používa sa pre počiatočný stav. Používa sa po počiatočnej podmienke if na kontrolu dodatočných podmienok.
    počet Blokov Môže mať iba jeden blok if. Môže mať viacero blokov elif, ale iba jeden ďalší blok (voliteľné).
    Poprava Ak je podmienka pravdivá, vykoná blok kódu spojený s príkazom if. Ak je podmienka nepravdivá, vykoná sa blok else (ak je prítomný) (voliteľné). Kontroluje každú podmienku elif v poradí. Ak je jedna podmienka elif pravdivá, vykoná sa zodpovedajúci blok kódu a skript ukončí celý podmienený blok. Ak nie je splnená žiadna z podmienok elif, vykoná sa blok else (ak je prítomný).
    Vnorené štruktúry Môže byť vnorené do iných blokov if, elif alebo else. Nedá sa vnoriť do iného bloku elif, ale dá sa použiť vo vnútri bloku if alebo else.

    Pochopme to na príklade.

    #!/bin/bash
    číslo = 5
    if [ $číslo -gt 10 ]; potom
    echo $číslo je väčšie ako 10
    inak
    echo $číslo nie je väčšie ako 10
    byť
    ozvena ———
    if [ $číslo -gt 10 ]; potom
    echo $číslo je väčšie ako 10
    elif [ $číslo -ekv 10 ]; potom
    echo $číslo sa rovná 10
    inak
    echo $číslo je menšie ako 10
    byť

    Vysvetlenie:

    V tomto príklade prvý blok if kontroluje, či je číslo väčšie ako 10. Ak nie, vypíše správu, že číslo nie je väčšie ako 10. Druhý blok s príkazmi elif kontroluje viacero podmienok postupne, kým jedna z nich nie je pravdivá. V tomto prípade, keďže hodnota čísla je 5, výstup bude:

    if_elif rozdiel

    if_elif rozdiel

    23) Ako používate slučku while na opakované vykonávanie príkazov?

    Slučka while sa používa v skriptovaní shellu na opakované vykonávanie množiny príkazov, pokiaľ je zadaná podmienka pravdivá. Cyklus pokračuje vo vykonávaní príkazov, kým sa podmienka nestane falošnou.

    Tu je základná syntax cyklu while:

    pričom [ podmienka ]; robiť
    # Príkazy, ktoré sa majú vykonať
    hotový

    Vysvetlenie:

    1. Cyklus „while“ začína kľúčovým slovom „while“, za ktorým nasleduje podmienka uzavretá v hranatých zátvorkách „[ ]“.
    2. Telo cyklu, ktoré obsahuje príkazy, ktoré sa majú vykonať, je uzavreté medzi kľúčovými slovami „do“ a „done“.
    3. Slučka najskôr skontroluje stav. Ak je podmienka pravdivá, vykonajú sa príkazy v tele cyklu. Po vykonaní tela slučky sa podmienka znova skontroluje a proces sa opakuje, kým sa podmienka nestane falošnou.

    Príklad: Ak chceme vytlačiť čísla od 1 do 5

    #!/bin/bash
    počítadlo = 1
    pričom [ $counter -le 5 ]; robiť
    echo Číslo: $counter
    počítadlo=$((počítadlo + 1))
    hotový

    Vysvetlenie:

    • Premenná počítadla je nastavená na 1.
    • Cyklus while kontroluje, či je hodnota počítadla menšia alebo rovná 5. Pokiaľ je táto podmienka pravdivá, cyklus pokračuje vo vykonávaní.
    • Vo vnútri slučky sa aktuálna hodnota počítadla vytlačí pomocou ozveny.
    • Počítadlo sa zvýši o 1 pomocou výrazu $(((počítadlo + 1)).
    pričom slučka

    pričom slučka

    24) Vytvorte shell skript, ktorý nájde a vypíše všetky prázdne súbory v adresári.

    Shell skript, ktorý môžete použiť na nájdenie a zoznam všetkých prázdnych súborov v adresári pomocou príkazov `find` a `stat`:

    #!/bin/bash
    adresár = $ 1″
    if [ -z $adresar ]; potom
    echo Použitie: $ 0
    výstup 1
    byť

    ak [ ! -d $adresar ]; potom
    echo Error: „$adresár“ nie je platný adresár.
    výstup 1
    byť
    echo Prázdne súbory v $adresári:
    nájsť $ adresár -typ f -prázdny

    Vysvetlenie:

    1. ` #!/bin/bash `: Toto sa nazýva shebang a hovorí operačnému systému, aby použil shell Bash na interpretáciu a spustenie skriptu.
    2. ` adresár = $ 1″ `: Tento riadok priradí prvý argument príkazového riadka (označený $1) premennej ` adresár `.
    3. ` if [ -z $adresar ]; potom `: Tento riadok začína príkaz if, ktorý kontroluje, či je znak ` adresár ` premenná je prázdna (-z testuje prázdny reťazec).
    4. ` echo Použitie: $ 0 `: Ak je adresár prázdny, tento riadok vypíše správu o používaní, kde ` 0 USD ` predstavuje názov skriptu.
    5. ` výstup 1 `: Tento riadok ukončí skript s kódom ukončenia ` 1 `, čo znamená chybu.
    6. ` byť `: Tento riadok označuje koniec znaku ` ak ` vyhlásenie.
    7. ` ak [ ! -d $adresar ]; potom `: Toto spustí ďalší príkaz if na kontrolu, či poskytnutý adresár existuje (` -d ` testy pre adresár).
    8. ` echo Error: „$adresár“ nie je platný adresár. `: Ak poskytnutý adresár neexistuje, tento riadok vypíše chybové hlásenie.
    9. ` výstup 1 `: Ukončí skript s kódom ukončenia ` 1 `.
    10. ` byť `: Označuje koniec druhého ` ak' vyhlásenie.
    11. ` echo Prázdne súbory v $adresári: `: Ak je všetko doteraz platné, tento riadok vypíše správu, že skript vypíše prázdne súbory v zadanom adresári.
    12. ` nájsť $ adresár -typ f -prázdny `: Tento riadok používa znak ` Nájsť ` príkaz na vyhľadanie prázdnych súborov (` -prázdny `) typu bežné súbory (` - typ f `) v zadanom adresári. Potom vypíše zoznam týchto prázdnych súborov.
    Hľadanie prázdnych súborov

    Hľadanie prázdnych súborov

    Poznámka : Pri spustení skriptu musíme ako argument zadať adresár. Tu sme použili cestu aktuálneho adresára home/jayeshkumar/

    25) Aký je účel príkazu read v skriptovaní shellu?

    Príkaz read v shell skriptovaní umožňuje skriptu požiadať vás o informácie. Je to ako keď vám počítač položí otázku a čaká na vašu odpoveď. Je to užitočné pre skripty, ktoré vyžadujú, aby ste niečo napísali, alebo keď skript potrebuje pracovať s informáciami zo súborov. Príkaz read pomáha skriptu zastaviť sa a čakať na to, čo napíšete, a potom môže tieto informácie použiť na vykonanie viacerých vecí v skripte.

    Syntax príkazu read:

    read variable_name>

    Príklad : Ak chceme vziať meno ako vstup od užívateľa na jeho vytlačenie.

    #!/bin/bash
    echo Zadajte svoje meno:
    prečítať meno
    echo Ahoj, $name!

    453

    čítať meno

    Stručne povedané, príkaz read sa používa na zachytenie používateľského vstupu alebo údajov zo súborov v rámci skriptov shellu, vďaka čomu sú skripty interaktívnejšie a všestrannejšie.

    26) Napíšte shell skript, ktorý prevedie všetky názvy súborov v adresári na malé písmená.

    Tu je skript shellu, ktorý prevádza všetky názvy súborov v adresári na malé písmená.

    #!/bin/bash
    adresár = $ 1″
    if [ -z $adresar ]; potom
    echo Použitie: $ 0
    výstup 1
    byť

    ak [ ! -d $adresar ]; potom

    echo Error: „$adresár“ nie je platný adresár.
    výstup 1
    byť

    cd $ adresár || výstup 1

    pre súbor vo formáte *; robiť
    if [ -f $súbor ]; potom
    newname=$(echo $file | tr ‘A-Z’ ‘a-z’)
    [ $file != $newname ] && mv $file $newname
    byť
    hotový

    Vysvetlenie:

    1. #!/bin/bash : Toto je shebang, ktorý určuje, že skript by sa mal interpretovať pomocou shellu Bash.
    2. adresár = $ 1″ : Tento riadok priradí prvý argument príkazového riadka k adresáru premenných.
    3. if [ -z $adresar ]; potom : Tento riadok kontroluje, či je premenná adresára prázdna (pri spustení skriptu nie je zadaný žiadny argument).
    4. echo Použitie: $ 0 : Ak je adresár prázdny, tento riadok vytlačí správu o používaní s názvom skriptu ($0).
    5. výstup 1 : Tento riadok ukončí skript s kódom ukončenia 1, čo znamená, že sa vyskytla chyba.
    6. f i: Toto označuje koniec prvého príkazu if.
    7. ak [ ! -d $adresar ]; potom : Tento riadok kontroluje, či zadaný adresár neexistuje (-d testuje adresár).
    8. echo Error: „$adresár“ nie je platný adresár. : Ak zadaný adresár neexistuje, tento riadok vypíše chybové hlásenie.
    9. výstup 1 : Ukončí skript s kódom ukončenia 1.
    10. byť : Označuje koniec druhého príkazu if.
    11. cd $ adresár || výstup 1 : Zmení aktuálny pracovný adresár na zadaný adresár. Ak zmena adresára zlyhá (napr. neexistujúci adresár), skript sa ukončí s chybovým kódom.
    12. pre súbor vo formáte *; urobiť: ja pre súbor vo formáte *; urobiť: spustí cyklus, ktorý iteruje cez všetky položky v aktuálnom adresári (* zodpovedá všetkým názvom súborov).
    13. if [ -f $súbor ]; potom : Kontroluje, či je aktuálna položka opakovania slučky bežný súbor (-f testuje bežný súbor).
    14. newname=$(echo $file | tr ‘A-Z’ ‘a-z’) : Skonvertuje aktuálny názov súboru ($file) na malé písmená pomocou príkazu tr a uloží výsledok do premennej newname.
    15. [ $file != $newname ] && mv $file $newname : Porovná pôvodný názov súboru s novým názvom súboru s malými písmenami. Ak sú odlišné, premenuje súbor pomocou príkazu mv.
    16. byť : Označuje koniec vnútorného príkazu if.
    17. hotový : Označuje koniec slučky.

    454

    Poznámka : Pri spustení skriptu musíme ako argument zadať adresár. Tu sme použili cestu aktuálneho adresára home/jayeshkumar/test

    27) Ako môžete použiť aritmetické operácie v rámci shell skriptu?

    Aritmetické operácie možno vykonávať v rámci skriptu shell pomocou rôznych vstavaných metód. Shell poskytuje mechanizmy pre jednoduché aritmetické výpočty pomocou aritmetickej expanzie ako:

    1. Aritmetické rozšírenie ($((…)))
    2. Použitie príkazu expr
    3. Pomocou príkazu let

    Tu je náš skript Shell vysvetľujúci všetky tri metódy pre aritmetické operácie.

    #!/bin/bash
    číslo1=10
    num2=5

    #Aritmetická expanzia ($((…)))

    výsledok=$((číslo1 + číslo2))
    echo Súčet: $výsledok

    #Pomocou príkazu expr

    súčet=$(výraz $num1 + $num2)
    echo Sum: $sum

    #Pomocou príkazu let

    nech súčet = číslo1 + číslo2
    echo Sum: $sum

    Vysvetlenie:

    1. `#!/bin/bash` : Toto je shebang, ktorý určuje, že skript by sa mal interpretovať pomocou shellu Bash.
    2. `num1=10` a ' číslo2=5` : Tieto riadky priraďujú hodnoty 10 a 5 premenným ` číslo1 ` a ` číslo2 `, resp.
    3. „#Aritmetická expanzia ($((…))“) : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje aritmetické rozšírenie.
    4. 'výsledok=$((číslo1 + číslo2))'. : Tento riadok používa aritmetické rozšírenie na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok uloží do súboru ` výsledok ` premenná.
    5. `echo Sum: $výsledok` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` výsledok ` premenná.
    6. `#Pomocou príkazu expr` : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje použitie ` expr ` príkaz pre aritmetické operácie.
    7. `suma=$(výraz $číslo1 + $num2)` : Tento riadok používa znak ` expr ` príkaz na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok uloží do súboru ` súčet ` premenná. Všimnite si, že ` expr ` príkaz vyžaduje medzery okolo operátorov.
    8. `echo Sum: $sum` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` súčet ` premenná.
    9. `#Pomocou príkazu let` : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje použitie ` nech ` príkaz pre aritmetické operácie.
    10. `nech súčet = číslo1 + číslo2″` : Tento riadok používa znak ` nech ` príkaz na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok priradí znaku ` súčet ` premenná. ' nech ` príkaz nevyžaduje medzery okolo operátorov.
    11. `echo Sum: $sum` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` súčet ` premenná.
    aritmetika

    aritmetika

    28) Vytvorte skript, ktorý skontroluje, či je sieťový hostiteľ dostupný.

    Tu je jednoduchý shell skript, ktorý používa príkaz ping na kontrolu, či je sieťový hostiteľ dostupný:

    #!/bin/bash
    hostiteľ = $ 1″
    if [ -z $hostiteľ ]; potom
    echo Použitie: $ 0
    výstup 1
    byť
    ping -c 4 $hostiteľ

    ak [ $? -ekv 0]; potom
    echo $hostiteľ je dosiahnuteľný.
    inak
    echo $hostiteľ nie je dosiahnuteľný.
    byť

    Vysvetlenie:

    1. Ako argument berie názov hostiteľa alebo IP adresu a skontroluje, či je argument poskytnutý.
    2. Ak nie je zadaný žiadny argument, zobrazí sa správa o používaní a skončí sa.
    3. Používa príkaz ping s voľbou -c 4 na odoslanie štyroch požiadaviek na odozvu ICMP určenému hostiteľovi.
    4. Po spustení príkazu ping skontroluje stav ukončenia ($?). Ak je stav ukončenia 0, znamená to, že hostiteľ je dosiahnuteľný a skript vypíše správu o úspechu. V opačnom prípade vytlačí správu o zlyhaní.

    456

    Poznámka : Pri spúšťaní skriptu musíme zadať názov hostiteľa ako argument. Tu sme použili google.com

    29) Napíšte skript Shell na nájdenie najväčšieho prvku v poli:

    Tu je skript shellu na nájdenie najväčšieho prvku v poli.

    #!/bin/bash
    # Deklarujte pole
    pole=(3 56 24 89 67)

    # Inicializujte premennú na uloženie maximálnej hodnoty, počnúc prvým prvkom

    max=${array[0]}

    # Iterujte cez pole

    pre číslo v ${array[@]}; robiť

    # Porovnajte každý prvok s aktuálnym maximom

    if ((počet> max)); potom
    max=$num
    byť
    hotový

    # Vytlačte maximálnu hodnotu

    echo Maximálny prvok v poli je: $max

    Vysvetlenie:

    1. ` #!/bin/bash `: Riadok shebang určuje, že skript by sa mal interpretovať pomocou shellu Bash.
    2. ` pole=(3 56 24 89 67) `: Pole je deklarované a inicializované hodnotami.
    3. ` max=${array[0]} `: `max` sa inicializuje prvým prvkom poľa.
    4. ` pre číslo v ${array[@]}; robiť `: Slučka `for` sa používa na iteráciu cez prvky poľa.
    5. ` if ((počet> max)); potom `: Príkaz `if` kontroluje, či je aktuálny prvok `num` väčší ako aktuálne maximum `max`.
    6. ` max=$num`: Ak `num ` je väčší ako `max`, `max` sa aktualizuje o hodnotu num.
    7. ` hotový `: Slučka `for` je uzavretá.
    8. ` echo Maximálny prvok v poli je: $max `: Nakoniec skript vypíše maximálnu hodnotu nájdenú v poli.
    461

    najväčší počet

    30) Napíšte skript na výpočet súčtu prvkov v poli.

    #!/bin/bash

    # Deklarujte pole

    pole=(1 65 22 19 94)

    # Inicializujte premennú na uloženie súčtu

    súčet=0

    # Iterujte pole a pridajte každý prvok k súčtu

    pre číslo v ${array[@]}; robiť
    dopoludnia=$((dopoludnia + dopoludnia))
    hotový

    # Vytlačte sumu

    echo Súčet prvkov v poli je: $sum

    Vysvetlenie:

    ` #!/bin/bash `: Riadok shebang určuje, že skript by sa mal interpretovať pomocou shellu Bash.

    ` pole=(1 65 22 19 94) `: Pole je deklarované a inicializované hodnotami.

    ` súčet=0 `:` súčet ` sa inicializuje na nulu, aby udržal súčet prvkov.

    ` pre číslo v ${array[@]}; robiť `: A` pre ` slučka sa používa na iteráciu cez prvky poľa.

    ` dopoludnia=$((dopoludnia + dopoludnia)) `: Vo vnútri slučky každý prvok ` na jeden ` sa pridáva k ` súčet ` premenná.

    ` hotový `: ` pre ` slučka je uzavretá.

    `echo Súčet prvkov v poli je: $sum`: Nakoniec skript vypíše súčet všetkých prvkov v poli.

    462

    Súčet prvkov

    Zistite viac o skriptoch Shell

    Záver

    Všetci geekovia vieme, že skript shellu je veľmi užitočný na zvýšenie produktivity práce a zároveň šetrí čas. Takže v tomto článku sme sa zaoberali 30 príkladov veľmi užitočných a najpoužívanejších shellových skriptov . Dúfame, že vám tento úplný sprievodca príkladom skriptovania shellu pomôže pochopiť všetko o skriptoch shellu.



    ).
  5. výstup 1 : Tento riadok ukončí skript s kódom ukončenia 1, čo znamená, že sa vyskytla chyba.
  6. f i: Toto označuje koniec prvého príkazu if.
  7. ak [ ! -d $adresar ]; potom : Tento riadok kontroluje, či zadaný adresár neexistuje (-d testuje adresár).
  8. echo Error: „$adresár“ nie je platný adresár. : Ak zadaný adresár neexistuje, tento riadok vypíše chybové hlásenie.
  9. výstup 1 : Ukončí skript s kódom ukončenia 1.
  10. byť : Označuje koniec druhého príkazu if.
  11. cd $ adresár || výstup 1 : Zmení aktuálny pracovný adresár na zadaný adresár. Ak zmena adresára zlyhá (napr. neexistujúci adresár), skript sa ukončí s chybovým kódom.
  12. pre súbor vo formáte *; urobiť: ja pre súbor vo formáte *; urobiť: spustí cyklus, ktorý iteruje cez všetky položky v aktuálnom adresári (* zodpovedá všetkým názvom súborov).
  13. if [ -f $súbor ]; potom : Kontroluje, či je aktuálna položka opakovania slučky bežný súbor (-f testuje bežný súbor).
  14. newname=$(echo $file | tr ‘A-Z’ ‘a-z’) : Skonvertuje aktuálny názov súboru ($file) na malé písmená pomocou príkazu tr a uloží výsledok do premennej newname.
  15. [ $file != $newname ] && mv $file $newname : Porovná pôvodný názov súboru s novým názvom súboru s malými písmenami. Ak sú odlišné, premenuje súbor pomocou príkazu mv.
  16. byť : Označuje koniec vnútorného príkazu if.
  17. hotový : Označuje koniec slučky.

454

Poznámka : Pri spustení skriptu musíme ako argument zadať adresár. Tu sme použili cestu aktuálneho adresára home/jayeshkumar/test

27) Ako môžete použiť aritmetické operácie v rámci shell skriptu?

Aritmetické operácie možno vykonávať v rámci skriptu shell pomocou rôznych vstavaných metód. Shell poskytuje mechanizmy pre jednoduché aritmetické výpočty pomocou aritmetickej expanzie ako:

  1. Aritmetické rozšírenie ($((…)))
  2. Použitie príkazu expr
  3. Pomocou príkazu let

Tu je náš skript Shell vysvetľujúci všetky tri metódy pre aritmetické operácie.

#!/bin/bash
číslo1=10
num2=5

#Aritmetická expanzia ($((…)))

výsledok=$((číslo1 + číslo2))
echo Súčet: $výsledok

#Pomocou príkazu expr

súčet=$(výraz $num1 + $num2)
echo Sum: $sum

#Pomocou príkazu let

nech súčet = číslo1 + číslo2
echo Sum: $sum

Vysvetlenie:

  1. `#!/bin/bash` : Toto je shebang, ktorý určuje, že skript by sa mal interpretovať pomocou shellu Bash.
  2. `num1=10` a ' číslo2=5` : Tieto riadky priraďujú hodnoty 10 a 5 premenným ` číslo1 ` a ` číslo2 `, resp.
  3. „#Aritmetická expanzia ($((…))“) : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje aritmetické rozšírenie.
  4. 'výsledok=$((číslo1 + číslo2))'. : Tento riadok používa aritmetické rozšírenie na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok uloží do súboru ` výsledok ` premenná.
  5. `echo Sum: $výsledok` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` výsledok ` premenná.
  6. `#Pomocou príkazu expr` : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje použitie ` expr ` príkaz pre aritmetické operácie.
  7. `suma=$(výraz $číslo1 + $num2)` : Tento riadok používa znak ` expr ` príkaz na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok uloží do súboru ` súčet ` premenná. Všimnite si, že ` expr ` príkaz vyžaduje medzery okolo operátorov.
  8. `echo Sum: $sum` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` súčet ` premenná.
  9. `#Pomocou príkazu let` : Toto je komentár označujúci začiatok sekcie, ktorá ukazuje použitie ` nech ` príkaz pre aritmetické operácie.
  10. `nech súčet = číslo1 + číslo2″` : Tento riadok používa znak ` nech ` príkaz na výpočet súčtu ` číslo1 ` a ` číslo2 ` a výsledok priradí znaku ` súčet ` premenná. ' nech ` príkaz nevyžaduje medzery okolo operátorov.
  11. `echo Sum: $sum` : Tento riadok vytlačí vypočítanú sumu pomocou hodnoty uloženej v ` súčet ` premenná.
aritmetika

aritmetika

28) Vytvorte skript, ktorý skontroluje, či je sieťový hostiteľ dostupný.

Tu je jednoduchý shell skript, ktorý používa príkaz ping na kontrolu, či je sieťový hostiteľ dostupný:

#!/bin/bash
hostiteľ = $ 1″
if [ -z $hostiteľ ]; potom
echo Použitie: $ 0
výstup 1
byť
ping -c 4 $hostiteľ

ak [ $? -ekv 0]; potom
echo $hostiteľ je dosiahnuteľný.
inak
echo $hostiteľ nie je dosiahnuteľný.
byť

Vysvetlenie:

  1. Ako argument berie názov hostiteľa alebo IP adresu a skontroluje, či je argument poskytnutý.
  2. Ak nie je zadaný žiadny argument, zobrazí sa správa o používaní a skončí sa.
  3. Používa príkaz ping s voľbou -c 4 na odoslanie štyroch požiadaviek na odozvu ICMP určenému hostiteľovi.
  4. Po spustení príkazu ping skontroluje stav ukončenia ($?). Ak je stav ukončenia 0, znamená to, že hostiteľ je dosiahnuteľný a skript vypíše správu o úspechu. V opačnom prípade vytlačí správu o zlyhaní.

456

Poznámka : Pri spúšťaní skriptu musíme zadať názov hostiteľa ako argument. Tu sme použili google.com

29) Napíšte skript Shell na nájdenie najväčšieho prvku v poli:

Tu je skript shellu na nájdenie najväčšieho prvku v poli.

#!/bin/bash
# Deklarujte pole
pole=(3 56 24 89 67)

# Inicializujte premennú na uloženie maximálnej hodnoty, počnúc prvým prvkom

max=${array[0]}

# Iterujte cez pole

pre číslo v ${array[@]}; robiť

mylivericket

# Porovnajte každý prvok s aktuálnym maximom

if ((počet> max)); potom
max=$num
byť
hotový

# Vytlačte maximálnu hodnotu

echo Maximálny prvok v poli je: $max

Vysvetlenie:

  1. ` #!/bin/bash `: Riadok shebang určuje, že skript by sa mal interpretovať pomocou shellu Bash.
  2. ` pole=(3 56 24 89 67) `: Pole je deklarované a inicializované hodnotami.
  3. ` max=${array[0]} `: `max` sa inicializuje prvým prvkom poľa.
  4. ` pre číslo v ${array[@]}; robiť `: Slučka `for` sa používa na iteráciu cez prvky poľa.
  5. ` if ((počet> max)); potom `: Príkaz `if` kontroluje, či je aktuálny prvok `num` väčší ako aktuálne maximum `max`.
  6. ` max=$num`: Ak `num ` je väčší ako `max`, `max` sa aktualizuje o hodnotu num.
  7. ` hotový `: Slučka `for` je uzavretá.
  8. ` echo Maximálny prvok v poli je: $max `: Nakoniec skript vypíše maximálnu hodnotu nájdenú v poli.
461

najväčší počet

30) Napíšte skript na výpočet súčtu prvkov v poli.

#!/bin/bash

# Deklarujte pole

pole=(1 65 22 19 94)

# Inicializujte premennú na uloženie súčtu

súčet=0

# Iterujte pole a pridajte každý prvok k súčtu

pre číslo v ${array[@]}; robiť
dopoludnia=$((dopoludnia + dopoludnia))
hotový

# Vytlačte sumu

echo Súčet prvkov v poli je: $sum

Vysvetlenie:

` #!/bin/bash `: Riadok shebang určuje, že skript by sa mal interpretovať pomocou shellu Bash.

` pole=(1 65 22 19 94) `: Pole je deklarované a inicializované hodnotami.

` súčet=0 `:` súčet ` sa inicializuje na nulu, aby udržal súčet prvkov.

` pre číslo v ${array[@]}; robiť `: A` pre ` slučka sa používa na iteráciu cez prvky poľa.

` dopoludnia=$((dopoludnia + dopoludnia)) `: Vo vnútri slučky každý prvok ` na jeden ` sa pridáva k ` súčet ` premenná.

` hotový `: ` pre ` slučka je uzavretá.

`echo Súčet prvkov v poli je: $sum`: Nakoniec skript vypíše súčet všetkých prvkov v poli.

462

Súčet prvkov

Zistite viac o skriptoch Shell

Záver

Všetci geekovia vieme, že skript shellu je veľmi užitočný na zvýšenie produktivity práce a zároveň šetrí čas. Takže v tomto článku sme sa zaoberali 30 príkladov veľmi užitočných a najpoužívanejších shellových skriptov . Dúfame, že vám tento úplný sprievodca príkladom skriptovania shellu pomôže pochopiť všetko o skriptoch shellu.