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. 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 Teraz tento súbor skriptu nie je štandardne spustiteľný, musíme tomuto súboru udeliť spustiteľné povolenie. Zadajte 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 Ak chcete otestovať tento skript shellu, pridajte nasledujúce príkazy Uložte zmeny a spustite skript shell zadaním Snímka obrazovky vyššie uvedených krokov Môžete vidieť, že vykonal všetky zadané príkazy. 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. Komentáre v skripte Shell Vidíte, komentár sa ignoruje. Áno, skripty Shell podporujú používanie premenných a pri ich deklarácii nemusíme definovať typ premennej. Existujú dva typy premenných: 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. Premenné v skripte 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. 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. 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. Pridávame pred, pretože pri zadávaní v konštrukte [ ] je potrebné ich escapovať. Teraz sa pozrime, kde sa používajú. 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í. Skontroluje podmienku a ak je podmienená pravdivá, vykoná príkazy. Syntax Pozrime sa na príklad. .ak vyhlásenie V príkaze if-else môžete zadať množinu príkazov, ktoré sa majú spustiť, ak podmienka nie je splnená. Syntax Pozrime sa na príklad .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. 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. Začne spúšťať zadané príkazy, ak je podmienka pravdivá a opakuje ich, kým podmienka nie je nepravdivá. Syntax Pozrime sa na príklad. 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. 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 Pozrime sa na príklad. pre slučku O slučkách si môžete prečítať podrobne tu . 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. Ak chcete odovzdať argumenty, jednoducho ich napíšte do terminálu za názov skriptu, ako je uvedené nižšie. Pozičné argumenty Výstup príkazov môžete uložiť do premennej v skripte shellu. Existujú dva spôsoby, ako to urobiť. Syntax Pozrime sa na príklad. Ukladanie výstupu príkazov 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 výstupný kód príkazu shell 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. 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 Teraz tento súbor skriptu nie je štandardne spustiteľný, musíme tomuto súboru udeliť spustiteľné povolenie. Zadajte 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 Ak chcete otestovať tento skript shellu, pridajte nasledujúce príkazy Uložte zmeny a spustite skript shell zadaním Snímka obrazovky vyššie uvedených krokov Môžete vidieť, že vykonal všetky zadané príkazy. 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. Komentáre v skripte Shell Vidíte, komentár sa ignoruje. Áno, skripty Shell podporujú používanie premenných a pri ich deklarácii nemusíme definovať typ premennej. Existujú dva typy premenných: 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. Premenné v skripte 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. 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. 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. Pridávame pred, pretože pri zadávaní v konštrukte [ ] je potrebné ich escapovať. Teraz sa pozrime, kde sa používajú. 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í. Skontroluje podmienku a ak je podmienená pravdivá, vykoná príkazy. Syntax Pozrime sa na príklad. .ak vyhlásenie V príkaze if-else môžete zadať množinu príkazov, ktoré sa majú spustiť, ak podmienka nie je splnená. Syntax Pozrime sa na príklad .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. 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. Začne spúšťať zadané príkazy, ak je podmienka pravdivá a opakuje ich, kým podmienka nie je nepravdivá. Syntax Pozrime sa na príklad. 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. 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 Pozrime sa na príklad. pre slučku O slučkách si môžete prečítať podrobne tu . 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. Ak chcete odovzdať argumenty, jednoducho ich napíšte do terminálu za názov skriptu, ako je uvedené nižšie. Pozičné argumenty Výstup príkazov môžete uložiť do premennej v skripte shellu. Existujú dva spôsoby, ako to urobiť. Syntax Pozrime sa na príklad. Ukladanie výstupu príkazov 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 výstupný kód príkazu shellVytvorenie skriptu Shell
touch script.sh>
chmod +x script.sh>
nano script.sh>
echo This is my first shell script touch testfile ls echo End of my shell script>
./script.sh>

Komentáre v skripte shellu
# This is a comment echo Testing comments in shell script>

Premenné v skripte Shell
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Definovanie interpretera skriptov Shell
#!/bin/bash>
Porovnávacie operátory
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 Podmienečné vyhlásenia
Ak vyhlásenie
if [ condition ] then #statements fi>
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

Ak je to inak
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

Slučky
Kým slučka
while [ condition ] do #set of statements done>
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Pre slučku
for var in val1 val2 val3 do #statements done>
#!/bin/sh for var in 2 4 5 8 do echo $var done>

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

Ukladanie výstupu príkazov
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Výstupné kódy príkazov shellu

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

Vytvorenie skriptu Shell
touch script.sh>
chmod +x script.sh>
nano script.sh>
echo This is my first shell script touch testfile ls echo End of my shell script>
./script.sh>

Komentáre v skripte shellu
# This is a comment echo Testing comments in shell script>

Premenné v skripte Shell
# Accessing an Environment Variable echo $USER # Creating and accessing User defined Variable variable_name='Geeksforgeeks' echo $variable_name>

Definovanie interpretera skriptov Shell
#!/bin/bash>
Porovnávacie operátory
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 Podmienečné vyhlásenia
Ak vyhlásenie
if [ condition ] then #statements fi>
#!/bin/sh x=10 y=11 if [ $x -ne $y ] then echo 'Not equal' fi>

Ak je to inak
if [ condition ] then #set of statements if the condition is true else #set of statements if the condition is false fi>
#!/Syntaxbin/sh x=10 y=10 if [ $x -ne $y ] then echo 'Not equal' else echo 'They are equal' fi>

Slučky
Kým slučka
while [ condition ] do #set of statements done>
#!/bin/sh x=2 while [ $x -lt 6 ] do echo $x x=`expr $x + 1` done>

Pre slučku
for var in val1 val2 val3 do #statements done>
#!/bin/sh for var in 2 4 5 8 do echo $var done>

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

Ukladanie výstupu príkazov
#Syntax 1 var=$(a valid linux command) #Syntax 2 var2=`a valid linux command`>
#!/bin/sh b=$(pwd) c=`pwd` echo $b echo $c d=$(ls /bin | grep bash) echo $d>

Výstupné kódy príkazov shellu

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

#!/bin/sh echo 'No of arguments is $#' echo 'Name of the script is' echo 'First argument is ' echo 'Second argument 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
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