logo

Ako vytvoriť skript Shell v linuxe

Shell je rozhranie operačného systému. Prijíma príkazy od používateľov a interpretuje ich do operačného systému. Ak chcete spustiť veľa príkazov spolu, môžete tak urobiť vytvorením skriptu shellu. Shell skripty sú veľmi užitočné, ak potrebujete robiť nejakú úlohu bežne, napríklad zálohovanie. Tieto príkazy môžete vypísať a všetky vykonať pomocou jediného skriptu. Pozrime sa, ako môžete vytvoriť skript shell a spustiť ho v systéme Linux.

Vytvorenie skriptu Shell

Prihláste sa do svojho počítača so systémom Linux a otvorte terminál, prejdite do priečinka, do ktorého chcete uložiť skript shellu. Shell skripty končia príponou .sh. Vytvorme náš prvý shell skript. Zadajte



touch script.sh>

Teraz tento súbor skriptu nie je štandardne spustiteľný, musíme tomuto súboru udeliť spustiteľné povolenie. Zadajte

chmod +x script.sh>

Teraz do tohto shell skriptu pridáme niekoľko príkazov. Otvorte tento skript shellu pomocou ľubovoľného textového editora podľa vášho výberu (založeného na príkazovom riadku alebo na základe GUI) a pridajte nejaké príkazy. Použijeme nano. Zadajte

nano script.sh>

Ak chcete otestovať tento skript shellu, pridajte nasledujúce príkazy



echo This is my first shell script touch testfile ls echo End of my shell script>

Uložte zmeny a spustite skript shell zadaním

./script.sh>

Snímka obrazovky vyššie uvedených krokov

Môžete vidieť, že vykonal všetky zadané príkazy.



Komentáre v skripte shellu

Každý riadok, ktorý začína # v skripte shellu, sa považuje za komentár a shell ho počas vykonávania ignoruje, okrem riadku shebang, ktorý uvidíme neskôr v tomto článku. Pozrime sa na príklad. Vytvorí sa skript shellu s nasledujúcim obsahom.

# This is a comment echo Testing comments in shell script>

Komentáre v skripte Shell

Vidíte, komentár sa ignoruje.

Premenné v skripte Shell

Áno, skripty Shell podporujú používanie premenných a pri ich deklarácii nemusíme definovať typ premennej. Existujú dva typy premenných:

  • Systémom definované premenné
  • Používateľom definované premenné.

Systémovo definované premenné, tiež nazývané premenné prostredia, sú vo všeobecnosti veľké. Všetky aktuálne premenné prostredia môžete zobraziť pomocou príkazu printenv. Premenné definované používateľom nastavuje používateľ a existujú iba počas vykonávania skriptu. Premennú môžete definovať jednoduchým napísaním jej názvu a priradením hodnoty so znamienkom = a prístup k premennej získate pridaním znaku $ pred názov premennej. Premenné sú demonštrované v nasledujúcom príklade skriptu.

# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Premenné v skripte Shell

Definovanie interpretera skriptov Shell

V Linuxe je k dispozícii veľa shellov, ako napríklad The bourne shell(sh), The Korn Shell(ksh) a GNU Bourne-Again Shell(bash). Skripty napísané pre shell sh sa nazývajú skripty shell a môžu byť interpretované v shelloch ksh aj bash. ksh a Bash sú vylepšené verzie pôvodného shellu sh a majú viac funkcií ako sh. Bash je vo všeobecnosti predvolený shell vo väčšine Linuxových distribúcií a skripty napísané špeciálne pre bash shell sa nazývajú bash skripty.

shloka mehta vzdelanie

Môžete určiť, ktorý shell bude skript používať, aj keď je skript spustený z iného shellového terminálu. Ak to chcete urobiť, pridajte #! v hornej časti súboru skriptu, za ktorým nasleduje absolútna cesta k zvolenému shellu. Ak chcete zadať bash ako interpret, pridajte nasledujúci riadok na vrch skriptu shellu.

#!/bin/bash>

Táto línia sa nazýva línia shebang.

Poznámka: Toto bude fungovať iba vtedy, ak je vo vašom systéme nainštalovaný bash.

Porovnávacie operátory

V skriptovaní shellu môžete porovnať dve premenné. Tieto porovnania robíme, aby sme sa rozhodovali, uvidíme, ako to urobiť neskôr v tomto článku, ale predtým tu je zoznam niektorých operátorov porovnávania.

Porovnanie celých čísel

Operátor Popis
-ekv rovná sa
- je sa nerovná
-gt je väčší ako
-ge je väčšie alebo rovné
-lt je menej než
- je menšie alebo rovné

Porovnanie reťazcov

Operátor Popis
== rovná sa
!= sa nerovná
< je menšia ako v abecednom poradí ASCII
> je väčší ako v abecednom poradí ASCII

Pridávame pred, pretože pri zadávaní v konštrukte [ ] je potrebné ich escapovať. Teraz sa pozrime, kde sa používajú.

Podmienečné vyhlásenia

Podmienené príkazy sa používajú na vykonanie bloku kódu iba vtedy, keď sú splnené určité podmienky. Shell skripty podporujú používanie podmienených príkazov. Na kontrolu podmienok používame porovnávacie operátory. Pozrime sa na niekoľko podmienených vyhlásení.

Ak vyhlásenie

Skontroluje podmienku a ak je podmienená pravdivá, vykoná príkazy.

Syntax

if [ condition ] then #statements fi>

Pozrime sa na príklad.

#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.ak vyhlásenie

Ak je to inak

V príkaze if-else môžete zadať množinu príkazov, ktoré sa majú spustiť, ak podmienka nie je splnená.

Syntax

if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>

Pozrime sa na príklad

#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else vyhlásenie

Existujú aj ďalšie podmienené vyhlásenia, môžete si o nich prečítať tu .

Poznámka: Zadajte medzeru za [ a pred ] pri určovaní podmienky, ktorá sa má skontrolovať, inak sa zobrazí chyba.

Slučky

Pomocou slučiek môžete množiť príkazy znova a znova, kým nie je splnená určitá podmienka. Pozrime sa na niektoré slučky.

Kým slučka

Začne spúšťať zadané príkazy, ak je podmienka pravdivá a opakuje ich, kým podmienka nie je nepravdivá.

Syntax

while [ condition ] do #set of statements done>

Pozrime sa na príklad.

#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Kým slučka

Pri priraďovaní k premennej uzatvárame výraz expr do ` . O príkaze expr si môžete prečítať tu.

Pre slučku

V slučke for premenná iteruje cez zoznam hodnôt a končí, keď už nie sú žiadne ďalšie hodnoty, ktoré by bolo potrebné opakovať.

Syntax

for var in val1 val2 val3 do #statements done>

Pozrime sa na príklad.

#!/bin/sh for var in 2 4 5 8 do echo $var done>

pre slučku

O slučkách si môžete prečítať podrobne tu .

Pozičné argumenty

Pozičné argumenty sú argumenty alebo hodnoty, ktoré odovzdávame shell skriptu pri vykonávaní skriptu. Sú prístupné pomocou premenných

Shell je rozhranie operačného systému. Prijíma príkazy od používateľov a interpretuje ich do operačného systému. Ak chcete spustiť veľa príkazov spolu, môžete tak urobiť vytvorením skriptu shellu. Shell skripty sú veľmi užitočné, ak potrebujete robiť nejakú úlohu bežne, napríklad zálohovanie. Tieto príkazy môžete vypísať a všetky vykonať pomocou jediného skriptu. Pozrime sa, ako môžete vytvoriť skript shell a spustiť ho v systéme Linux.

Vytvorenie skriptu Shell

Prihláste sa do svojho počítača so systémom Linux a otvorte terminál, prejdite do priečinka, do ktorého chcete uložiť skript shellu. Shell skripty končia príponou .sh. Vytvorme náš prvý shell skript. Zadajte

touch script.sh>

Teraz tento súbor skriptu nie je štandardne spustiteľný, musíme tomuto súboru udeliť spustiteľné povolenie. Zadajte

chmod +x script.sh>

Teraz do tohto shell skriptu pridáme niekoľko príkazov. Otvorte tento skript shellu pomocou ľubovoľného textového editora podľa vášho výberu (založeného na príkazovom riadku alebo na základe GUI) a pridajte nejaké príkazy. Použijeme nano. Zadajte

nano script.sh>

Ak chcete otestovať tento skript shellu, pridajte nasledujúce príkazy

echo This is my first shell script touch testfile ls echo End of my shell script>

Uložte zmeny a spustite skript shell zadaním

./script.sh>

Snímka obrazovky vyššie uvedených krokov

Môžete vidieť, že vykonal všetky zadané príkazy.

Komentáre v skripte shellu

Každý riadok, ktorý začína # v skripte shellu, sa považuje za komentár a shell ho počas vykonávania ignoruje, okrem riadku shebang, ktorý uvidíme neskôr v tomto článku. Pozrime sa na príklad. Vytvorí sa skript shellu s nasledujúcim obsahom.

# This is a comment echo Testing comments in shell script>

Komentáre v skripte Shell

Vidíte, komentár sa ignoruje.

Premenné v skripte Shell

Áno, skripty Shell podporujú používanie premenných a pri ich deklarácii nemusíme definovať typ premennej. Existujú dva typy premenných:

  • Systémom definované premenné
  • Používateľom definované premenné.

Systémovo definované premenné, tiež nazývané premenné prostredia, sú vo všeobecnosti veľké. Všetky aktuálne premenné prostredia môžete zobraziť pomocou príkazu printenv. Premenné definované používateľom nastavuje používateľ a existujú iba počas vykonávania skriptu. Premennú môžete definovať jednoduchým napísaním jej názvu a priradením hodnoty so znamienkom = a prístup k premennej získate pridaním znaku $ pred názov premennej. Premenné sú demonštrované v nasledujúcom príklade skriptu.

# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Premenné v skripte Shell

Definovanie interpretera skriptov Shell

V Linuxe je k dispozícii veľa shellov, ako napríklad The bourne shell(sh), The Korn Shell(ksh) a GNU Bourne-Again Shell(bash). Skripty napísané pre shell sh sa nazývajú skripty shell a môžu byť interpretované v shelloch ksh aj bash. ksh a Bash sú vylepšené verzie pôvodného shellu sh a majú viac funkcií ako sh. Bash je vo všeobecnosti predvolený shell vo väčšine Linuxových distribúcií a skripty napísané špeciálne pre bash shell sa nazývajú bash skripty.

Môžete určiť, ktorý shell bude skript používať, aj keď je skript spustený z iného shellového terminálu. Ak to chcete urobiť, pridajte #! v hornej časti súboru skriptu, za ktorým nasleduje absolútna cesta k zvolenému shellu. Ak chcete zadať bash ako interpret, pridajte nasledujúci riadok na vrch skriptu shellu.

#!/bin/bash>

Táto línia sa nazýva línia shebang.

Poznámka: Toto bude fungovať iba vtedy, ak je vo vašom systéme nainštalovaný bash.

Porovnávacie operátory

V skriptovaní shellu môžete porovnať dve premenné. Tieto porovnania robíme, aby sme sa rozhodovali, uvidíme, ako to urobiť neskôr v tomto článku, ale predtým tu je zoznam niektorých operátorov porovnávania.

Porovnanie celých čísel

Operátor Popis
-ekv rovná sa
- je sa nerovná
-gt je väčší ako
-ge je väčšie alebo rovné
-lt je menej než
- je menšie alebo rovné

Porovnanie reťazcov

Operátor Popis
== rovná sa
!= sa nerovná
< je menšia ako v abecednom poradí ASCII
> je väčší ako v abecednom poradí ASCII

Pridávame pred, pretože pri zadávaní v konštrukte [ ] je potrebné ich escapovať. Teraz sa pozrime, kde sa používajú.

Podmienečné vyhlásenia

Podmienené príkazy sa používajú na vykonanie bloku kódu iba vtedy, keď sú splnené určité podmienky. Shell skripty podporujú používanie podmienených príkazov. Na kontrolu podmienok používame porovnávacie operátory. Pozrime sa na niekoľko podmienených vyhlásení.

Ak vyhlásenie

Skontroluje podmienku a ak je podmienená pravdivá, vykoná príkazy.

Syntax

if [ condition ] then #statements fi>

Pozrime sa na príklad.

#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.ak vyhlásenie

Ak je to inak

V príkaze if-else môžete zadať množinu príkazov, ktoré sa majú spustiť, ak podmienka nie je splnená.

Syntax

if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>

Pozrime sa na príklad

#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else vyhlásenie

Existujú aj ďalšie podmienené vyhlásenia, môžete si o nich prečítať tu .

Poznámka: Zadajte medzeru za [ a pred ] pri určovaní podmienky, ktorá sa má skontrolovať, inak sa zobrazí chyba.

Slučky

Pomocou slučiek môžete množiť príkazy znova a znova, kým nie je splnená určitá podmienka. Pozrime sa na niektoré slučky.

Kým slučka

Začne spúšťať zadané príkazy, ak je podmienka pravdivá a opakuje ich, kým podmienka nie je nepravdivá.

Syntax

while [ condition ] do #set of statements done>

Pozrime sa na príklad.

#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Kým slučka

Pri priraďovaní k premennej uzatvárame výraz expr do ` . O príkaze expr si môžete prečítať tu.

Pre slučku

V slučke for premenná iteruje cez zoznam hodnôt a končí, keď už nie sú žiadne ďalšie hodnoty, ktoré by bolo potrebné opakovať.

Syntax

for var in val1 val2 val3 do #statements done>

Pozrime sa na príklad.

#!/bin/sh for var in 2 4 5 8 do echo $var done>

pre slučku

O slučkách si môžete prečítať podrobne tu .

Pozičné argumenty

Pozičné argumenty sú argumenty alebo hodnoty, ktoré odovzdávame shell skriptu pri vykonávaní skriptu. Sú prístupné pomocou premenných $0, $1, $2 … $9. Okrem toho na ne odkazujú ${10}, ${11} atď. $# ukladá počet odovzdaných argumentov a $0 ukladá názov skriptu. Pozrime sa na príklad, aby sme to všetko pochopili.

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>

Ak chcete odovzdať argumenty, jednoducho ich napíšte do terminálu za názov skriptu, ako je uvedené nižšie.

Pozičné argumenty

Ukladanie výstupu príkazov

Výstup príkazov môžete uložiť do premennej v skripte shellu. Existujú dva spôsoby, ako to urobiť.

Syntax

#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>

Pozrime sa na príklad.

#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Ukladanie výstupu príkazov

Výstupné kódy príkazov shellu

Vždy, keď príkaz skončí a vráti riadenie nadradenému procesu, vráti kódy ukončenia medzi 0 a 255. Kód ukončenia 0 znamená, že príkaz bol úspešný a akýkoľvek iný kód ukončenia znamená, že príkaz bol neúspešný. Výstupný kód môžete zobraziť po spustení ľubovoľného príkazu prístupom k $? premenlivý. Pozrite si príklad nižšie.

výstupný kód príkazu shell

Môžete manuálne nastaviť ukončovací kód pre váš shell skript. To sa dá použiť s podmienenými príkazmi na vyjadrenie, či bol alebo nebol dosiahnutý účel skriptu.

Príklad

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

výstupný kód príkazu shell



, , … . Okrem toho na ne odkazujú , atď. $# ukladá počet odovzdaných argumentov a

Shell je rozhranie operačného systému. Prijíma príkazy od používateľov a interpretuje ich do operačného systému. Ak chcete spustiť veľa príkazov spolu, môžete tak urobiť vytvorením skriptu shellu. Shell skripty sú veľmi užitočné, ak potrebujete robiť nejakú úlohu bežne, napríklad zálohovanie. Tieto príkazy môžete vypísať a všetky vykonať pomocou jediného skriptu. Pozrime sa, ako môžete vytvoriť skript shell a spustiť ho v systéme Linux.

Vytvorenie skriptu Shell

Prihláste sa do svojho počítača so systémom Linux a otvorte terminál, prejdite do priečinka, do ktorého chcete uložiť skript shellu. Shell skripty končia príponou .sh. Vytvorme náš prvý shell skript. Zadajte

touch script.sh>

Teraz tento súbor skriptu nie je štandardne spustiteľný, musíme tomuto súboru udeliť spustiteľné povolenie. Zadajte

chmod +x script.sh>

Teraz do tohto shell skriptu pridáme niekoľko príkazov. Otvorte tento skript shellu pomocou ľubovoľného textového editora podľa vášho výberu (založeného na príkazovom riadku alebo na základe GUI) a pridajte nejaké príkazy. Použijeme nano. Zadajte

nano script.sh>

Ak chcete otestovať tento skript shellu, pridajte nasledujúce príkazy

echo This is my first shell script touch testfile ls echo End of my shell script>

Uložte zmeny a spustite skript shell zadaním

./script.sh>

Snímka obrazovky vyššie uvedených krokov

Môžete vidieť, že vykonal všetky zadané príkazy.

Komentáre v skripte shellu

Každý riadok, ktorý začína # v skripte shellu, sa považuje za komentár a shell ho počas vykonávania ignoruje, okrem riadku shebang, ktorý uvidíme neskôr v tomto článku. Pozrime sa na príklad. Vytvorí sa skript shellu s nasledujúcim obsahom.

# This is a comment echo Testing comments in shell script>

Komentáre v skripte Shell

Vidíte, komentár sa ignoruje.

Premenné v skripte Shell

Áno, skripty Shell podporujú používanie premenných a pri ich deklarácii nemusíme definovať typ premennej. Existujú dva typy premenných:

  • Systémom definované premenné
  • Používateľom definované premenné.

Systémovo definované premenné, tiež nazývané premenné prostredia, sú vo všeobecnosti veľké. Všetky aktuálne premenné prostredia môžete zobraziť pomocou príkazu printenv. Premenné definované používateľom nastavuje používateľ a existujú iba počas vykonávania skriptu. Premennú môžete definovať jednoduchým napísaním jej názvu a priradením hodnoty so znamienkom = a prístup k premennej získate pridaním znaku $ pred názov premennej. Premenné sú demonštrované v nasledujúcom príklade skriptu.

# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Premenné v skripte Shell

Definovanie interpretera skriptov Shell

V Linuxe je k dispozícii veľa shellov, ako napríklad The bourne shell(sh), The Korn Shell(ksh) a GNU Bourne-Again Shell(bash). Skripty napísané pre shell sh sa nazývajú skripty shell a môžu byť interpretované v shelloch ksh aj bash. ksh a Bash sú vylepšené verzie pôvodného shellu sh a majú viac funkcií ako sh. Bash je vo všeobecnosti predvolený shell vo väčšine Linuxových distribúcií a skripty napísané špeciálne pre bash shell sa nazývajú bash skripty.

Môžete určiť, ktorý shell bude skript používať, aj keď je skript spustený z iného shellového terminálu. Ak to chcete urobiť, pridajte #! v hornej časti súboru skriptu, za ktorým nasleduje absolútna cesta k zvolenému shellu. Ak chcete zadať bash ako interpret, pridajte nasledujúci riadok na vrch skriptu shellu.

#!/bin/bash>

Táto línia sa nazýva línia shebang.

Poznámka: Toto bude fungovať iba vtedy, ak je vo vašom systéme nainštalovaný bash.

Porovnávacie operátory

V skriptovaní shellu môžete porovnať dve premenné. Tieto porovnania robíme, aby sme sa rozhodovali, uvidíme, ako to urobiť neskôr v tomto článku, ale predtým tu je zoznam niektorých operátorov porovnávania.

Porovnanie celých čísel

Operátor Popis
-ekv rovná sa
- je sa nerovná
-gt je väčší ako
-ge je väčšie alebo rovné
-lt je menej než
- je menšie alebo rovné

Porovnanie reťazcov

Operátor Popis
== rovná sa
!= sa nerovná
< je menšia ako v abecednom poradí ASCII
> je väčší ako v abecednom poradí ASCII

Pridávame pred, pretože pri zadávaní v konštrukte [ ] je potrebné ich escapovať. Teraz sa pozrime, kde sa používajú.

Podmienečné vyhlásenia

Podmienené príkazy sa používajú na vykonanie bloku kódu iba vtedy, keď sú splnené určité podmienky. Shell skripty podporujú používanie podmienených príkazov. Na kontrolu podmienok používame porovnávacie operátory. Pozrime sa na niekoľko podmienených vyhlásení.

Ak vyhlásenie

Skontroluje podmienku a ak je podmienená pravdivá, vykoná príkazy.

Syntax

if [ condition ] then #statements fi>

Pozrime sa na príklad.

#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.ak vyhlásenie

Ak je to inak

V príkaze if-else môžete zadať množinu príkazov, ktoré sa majú spustiť, ak podmienka nie je splnená.

Syntax

if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>

Pozrime sa na príklad

#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else vyhlásenie

Existujú aj ďalšie podmienené vyhlásenia, môžete si o nich prečítať tu .

Poznámka: Zadajte medzeru za [ a pred ] pri určovaní podmienky, ktorá sa má skontrolovať, inak sa zobrazí chyba.

Slučky

Pomocou slučiek môžete množiť príkazy znova a znova, kým nie je splnená určitá podmienka. Pozrime sa na niektoré slučky.

Kým slučka

Začne spúšťať zadané príkazy, ak je podmienka pravdivá a opakuje ich, kým podmienka nie je nepravdivá.

Syntax

while [ condition ] do #set of statements done>

Pozrime sa na príklad.

#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Kým slučka

Pri priraďovaní k premennej uzatvárame výraz expr do ` . O príkaze expr si môžete prečítať tu.

Pre slučku

V slučke for premenná iteruje cez zoznam hodnôt a končí, keď už nie sú žiadne ďalšie hodnoty, ktoré by bolo potrebné opakovať.

Syntax

for var in val1 val2 val3 do #statements done>

Pozrime sa na príklad.

#!/bin/sh for var in 2 4 5 8 do echo $var done>

pre slučku

O slučkách si môžete prečítať podrobne tu .

Pozičné argumenty

Pozičné argumenty sú argumenty alebo hodnoty, ktoré odovzdávame shell skriptu pri vykonávaní skriptu. Sú prístupné pomocou premenných $0, $1, $2 … $9. Okrem toho na ne odkazujú ${10}, ${11} atď. $# ukladá počet odovzdaných argumentov a $0 ukladá názov skriptu. Pozrime sa na príklad, aby sme to všetko pochopili.

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>

Ak chcete odovzdať argumenty, jednoducho ich napíšte do terminálu za názov skriptu, ako je uvedené nižšie.

Pozičné argumenty

Ukladanie výstupu príkazov

Výstup príkazov môžete uložiť do premennej v skripte shellu. Existujú dva spôsoby, ako to urobiť.

Syntax

#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>

Pozrime sa na príklad.

#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Ukladanie výstupu príkazov

Výstupné kódy príkazov shellu

Vždy, keď príkaz skončí a vráti riadenie nadradenému procesu, vráti kódy ukončenia medzi 0 a 255. Kód ukončenia 0 znamená, že príkaz bol úspešný a akýkoľvek iný kód ukončenia znamená, že príkaz bol neúspešný. Výstupný kód môžete zobraziť po spustení ľubovoľného príkazu prístupom k $? premenlivý. Pozrite si príklad nižšie.

výstupný kód príkazu shell

Môžete manuálne nastaviť ukončovací kód pre váš shell skript. To sa dá použiť s podmienenými príkazmi na vyjadrenie, či bol alebo nebol dosiahnutý účel skriptu.

Príklad

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

výstupný kód príkazu shell



ukladá názov skriptu. Pozrime sa na príklad, aby sme to všetko pochopili.

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is 

Shell je rozhranie operačného systému. Prijíma príkazy od používateľov a interpretuje ich do operačného systému. Ak chcete spustiť veľa príkazov spolu, môžete tak urobiť vytvorením skriptu shellu. Shell skripty sú veľmi užitočné, ak potrebujete robiť nejakú úlohu bežne, napríklad zálohovanie. Tieto príkazy môžete vypísať a všetky vykonať pomocou jediného skriptu. Pozrime sa, ako môžete vytvoriť skript shell a spustiť ho v systéme Linux.

Vytvorenie skriptu Shell

Prihláste sa do svojho počítača so systémom Linux a otvorte terminál, prejdite do priečinka, do ktorého chcete uložiť skript shellu. Shell skripty končia príponou .sh. Vytvorme náš prvý shell skript. Zadajte

touch script.sh>

Teraz tento súbor skriptu nie je štandardne spustiteľný, musíme tomuto súboru udeliť spustiteľné povolenie. Zadajte

chmod +x script.sh>

Teraz do tohto shell skriptu pridáme niekoľko príkazov. Otvorte tento skript shellu pomocou ľubovoľného textového editora podľa vášho výberu (založeného na príkazovom riadku alebo na základe GUI) a pridajte nejaké príkazy. Použijeme nano. Zadajte

nano script.sh>

Ak chcete otestovať tento skript shellu, pridajte nasledujúce príkazy

echo This is my first shell script touch testfile ls echo End of my shell script>

Uložte zmeny a spustite skript shell zadaním

./script.sh>

Snímka obrazovky vyššie uvedených krokov

Môžete vidieť, že vykonal všetky zadané príkazy.

Komentáre v skripte shellu

Každý riadok, ktorý začína # v skripte shellu, sa považuje za komentár a shell ho počas vykonávania ignoruje, okrem riadku shebang, ktorý uvidíme neskôr v tomto článku. Pozrime sa na príklad. Vytvorí sa skript shellu s nasledujúcim obsahom.

# This is a comment echo Testing comments in shell script>

Komentáre v skripte Shell

Vidíte, komentár sa ignoruje.

Premenné v skripte Shell

Áno, skripty Shell podporujú používanie premenných a pri ich deklarácii nemusíme definovať typ premennej. Existujú dva typy premenných:

  • Systémom definované premenné
  • Používateľom definované premenné.

Systémovo definované premenné, tiež nazývané premenné prostredia, sú vo všeobecnosti veľké. Všetky aktuálne premenné prostredia môžete zobraziť pomocou príkazu printenv. Premenné definované používateľom nastavuje používateľ a existujú iba počas vykonávania skriptu. Premennú môžete definovať jednoduchým napísaním jej názvu a priradením hodnoty so znamienkom = a prístup k premennej získate pridaním znaku $ pred názov premennej. Premenné sú demonštrované v nasledujúcom príklade skriptu.

# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Premenné v skripte Shell

Definovanie interpretera skriptov Shell

V Linuxe je k dispozícii veľa shellov, ako napríklad The bourne shell(sh), The Korn Shell(ksh) a GNU Bourne-Again Shell(bash). Skripty napísané pre shell sh sa nazývajú skripty shell a môžu byť interpretované v shelloch ksh aj bash. ksh a Bash sú vylepšené verzie pôvodného shellu sh a majú viac funkcií ako sh. Bash je vo všeobecnosti predvolený shell vo väčšine Linuxových distribúcií a skripty napísané špeciálne pre bash shell sa nazývajú bash skripty.

Môžete určiť, ktorý shell bude skript používať, aj keď je skript spustený z iného shellového terminálu. Ak to chcete urobiť, pridajte #! v hornej časti súboru skriptu, za ktorým nasleduje absolútna cesta k zvolenému shellu. Ak chcete zadať bash ako interpret, pridajte nasledujúci riadok na vrch skriptu shellu.

#!/bin/bash>

Táto línia sa nazýva línia shebang.

Poznámka: Toto bude fungovať iba vtedy, ak je vo vašom systéme nainštalovaný bash.

Porovnávacie operátory

V skriptovaní shellu môžete porovnať dve premenné. Tieto porovnania robíme, aby sme sa rozhodovali, uvidíme, ako to urobiť neskôr v tomto článku, ale predtým tu je zoznam niektorých operátorov porovnávania.

Porovnanie celých čísel

Operátor Popis
-ekv rovná sa
- je sa nerovná
-gt je väčší ako
-ge je väčšie alebo rovné
-lt je menej než
- je menšie alebo rovné

Porovnanie reťazcov

Operátor Popis
== rovná sa
!= sa nerovná
< je menšia ako v abecednom poradí ASCII
> je väčší ako v abecednom poradí ASCII

Pridávame pred, pretože pri zadávaní v konštrukte [ ] je potrebné ich escapovať. Teraz sa pozrime, kde sa používajú.

Podmienečné vyhlásenia

Podmienené príkazy sa používajú na vykonanie bloku kódu iba vtedy, keď sú splnené určité podmienky. Shell skripty podporujú používanie podmienených príkazov. Na kontrolu podmienok používame porovnávacie operátory. Pozrime sa na niekoľko podmienených vyhlásení.

Ak vyhlásenie

Skontroluje podmienku a ak je podmienená pravdivá, vykoná príkazy.

Syntax

if [ condition ] then #statements fi>

Pozrime sa na príklad.

#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

.ak vyhlásenie

Ak je to inak

V príkaze if-else môžete zadať množinu príkazov, ktoré sa majú spustiť, ak podmienka nie je splnená.

Syntax

if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>

Pozrime sa na príklad

#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

.if-else vyhlásenie

Existujú aj ďalšie podmienené vyhlásenia, môžete si o nich prečítať tu .

Poznámka: Zadajte medzeru za [ a pred ] pri určovaní podmienky, ktorá sa má skontrolovať, inak sa zobrazí chyba.

Slučky

Pomocou slučiek môžete množiť príkazy znova a znova, kým nie je splnená určitá podmienka. Pozrime sa na niektoré slučky.

Kým slučka

Začne spúšťať zadané príkazy, ak je podmienka pravdivá a opakuje ich, kým podmienka nie je nepravdivá.

Syntax

while [ condition ] do #set of statements done>

Pozrime sa na príklad.

#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Kým slučka

Pri priraďovaní k premennej uzatvárame výraz expr do ` . O príkaze expr si môžete prečítať tu.

Pre slučku

V slučke for premenná iteruje cez zoznam hodnôt a končí, keď už nie sú žiadne ďalšie hodnoty, ktoré by bolo potrebné opakovať.

Syntax

for var in val1 val2 val3 do #statements done>

Pozrime sa na príklad.

#!/bin/sh for var in 2 4 5 8 do echo $var done>

pre slučku

O slučkách si môžete prečítať podrobne tu .

Pozičné argumenty

Pozičné argumenty sú argumenty alebo hodnoty, ktoré odovzdávame shell skriptu pri vykonávaní skriptu. Sú prístupné pomocou premenných $0, $1, $2 … $9. Okrem toho na ne odkazujú ${10}, ${11} atď. $# ukladá počet odovzdaných argumentov a $0 ukladá názov skriptu. Pozrime sa na príklad, aby sme to všetko pochopili.

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is $0' echo 'First argument is $1' echo 'Second argument is $2'>

Ak chcete odovzdať argumenty, jednoducho ich napíšte do terminálu za názov skriptu, ako je uvedené nižšie.

Pozičné argumenty

Ukladanie výstupu príkazov

Výstup príkazov môžete uložiť do premennej v skripte shellu. Existujú dva spôsoby, ako to urobiť.

Syntax

#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>

Pozrime sa na príklad.

#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Ukladanie výstupu príkazov

Výstupné kódy príkazov shellu

Vždy, keď príkaz skončí a vráti riadenie nadradenému procesu, vráti kódy ukončenia medzi 0 a 255. Kód ukončenia 0 znamená, že príkaz bol úspešný a akýkoľvek iný kód ukončenia znamená, že príkaz bol neúspešný. Výstupný kód môžete zobraziť po spustení ľubovoľného príkazu prístupom k $? premenlivý. Pozrite si príklad nižšie.

výstupný kód príkazu shell

Môžete manuálne nastaviť ukončovací kód pre váš shell skript. To sa dá použiť s podmienenými príkazmi na vyjadrenie, či bol alebo nebol dosiahnutý účel skriptu.

Príklad

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

výstupný kód príkazu shell



' echo 'First argument is ' echo 'Second argument is '>

Ak chcete odovzdať argumenty, jednoducho ich napíšte do terminálu za názov skriptu, ako je uvedené nižšie.

dlhý na reťazec java

Pozičné argumenty

Ukladanie výstupu príkazov

Výstup príkazov môžete uložiť do premennej v skripte shellu. Existujú dva spôsoby, ako to urobiť.

Syntax

#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>

Pozrime sa na príklad.

#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Ukladanie výstupu príkazov

Výstupné kódy príkazov shellu

Vždy, keď príkaz skončí a vráti riadenie nadradenému procesu, vráti kódy ukončenia medzi 0 a 255. Kód ukončenia 0 znamená, že príkaz bol úspešný a akýkoľvek iný kód ukončenia znamená, že príkaz bol neúspešný. Výstupný kód môžete zobraziť po spustení ľubovoľného príkazu prístupom k $? premenlivý. Pozrite si príklad nižšie.

výstupný kód príkazu shell

Môžete manuálne nastaviť ukončovací kód pre váš shell skript. To sa dá použiť s podmienenými príkazmi na vyjadrenie, či bol alebo nebol dosiahnutý účel skriptu.

Príklad

#!/bin/sh read x if [ $x -ne 10 ] then echo failed exit 1 else echo passed exit 0 fi>

výstupný kód príkazu shell