logo

Kako ustvariti lupinski skript v linuxu

Shell je vmesnik operacijskega sistema. Sprejema ukaze uporabnikov in jih interpretira operacijskemu sistemu. Če želite zagnati več ukazov skupaj, lahko to storite tako, da ustvarite lupinski skript. Lupinski skripti so zelo uporabni, če morate rutinsko opravljati nalogo, na primer ustvarjanje varnostne kopije. Te ukaze lahko naštejete in jih vse izvedete z enim samim skriptom. Poglejmo, kako lahko ustvarite lupinski skript in ga zaženete v sistemu Linux.

Ustvarjanje lupinskega skripta

Prijavite se v svoj stroj Linux in odprite terminal, pomaknite se do mape, v katero želite shraniti lupinski skript. Lupinski skripti se končajo s pripono .sh. Ustvarimo svoj prvi lupinski skript. Vtipkaj

touch script.sh>

Ta skriptna datoteka privzeto ni izvršljiva, tej datoteki moramo dati izvršljivo dovoljenje. Vtipkaj



chmod +x script.sh>

Zdaj bomo temu skriptu lupine dodali nekaj ukazov. Odprite ta lupinski skript s katerim koli urejevalnikom besedil po vaši izbiri (na osnovi ukazne vrstice ali GUI) in dodajte nekaj ukazov. Uporabili bomo nano. Vtipkaj

nano script.sh>

Dodajte naslednje ukaze, da preizkusite ta lupinski skript

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

Shranite spremembe in zaženite lupinski skript tako, da vnesete

./script.sh>

Posnetek zaslona zgornjih korakov

Vidite lahko, da je izvršil vse podane ukaze.

Komentarji v lupinskem skriptu

Vsaka vrstica, ki se v skriptu lupine začne z #, se obravnava kot komentar in jo lupina med izvajanjem prezre, razen vrstice shebang, ki jo bomo videli kasneje v tem članku. Poglejmo primer. Ustvari se lupinski skript z naslednjo vsebino.

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

Komentarji v skriptu Shell

python sort tuple

Vidite lahko, da je komentar prezrt.

Spremenljivke v lupinskem skriptu

Da, skripti lupine podpirajo uporabo spremenljivk in ni nam treba definirati vrste spremenljivke med njeno deklaracijo. Obstajata dve vrsti spremenljivk:

  • Sistemsko definirane spremenljivke
  • Uporabniško definirane spremenljivke.

Sistemsko definirane spremenljivke, imenovane tudi spremenljivke okolja, so na splošno napisane z veliko začetnico. Z ukazom printenv si lahko ogledate vse trenutne spremenljivke okolja. Uporabniško definirane spremenljivke nastavi uporabnik in obstajajo le med izvajanjem skripta. Spremenljivko lahko definirate tako, da preprosto vnesete njeno ime in dodelite vrednost z znakom = ter dostopate do spremenljivke tako, da dodate $ pred ime spremenljivke. Spremenljivke so prikazane v naslednjem primeru skripta.

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

Spremenljivke v lupinskem skriptu

Definiranje tolmača Shell Script

V Linuxu je na voljo veliko lupin, kot so The bourne shell(sh), The Korn Shell(ksh) in GNU Bourne-Again Shell(bash). Skripti, napisani za lupino sh, se imenujejo skripti lupine in jih lahko razlagata obe lupini, ksh in bash. ksh in Bash sta izboljšani različici originalne lupine sh in imata več funkcij kot sh. Bash je na splošno privzeta lupina v večini distribucij Linuxa in skripti, napisani posebej za lupino bash, se imenujejo skripti bash.

Določite lahko, katero lupino bo uporabil skript, tudi če se skript izvaja iz drugega terminala lupine. Če želite to narediti, dodajte #! na vrhu skriptne datoteke, ki ji sledi absolutna pot izbrane lupine. Če želite določiti bash kot tolmača, dodajte naslednjo vrstico na vrh lupinskega skripta.

#!/bin/bash>

Ta linija se imenuje shebang linija.

Opomba: To bo delovalo samo, če je v vašem sistemu nameščen bash.

Operatorji primerjave

V skriptni lupini lahko primerjate dve spremenljivki. Te primerjave delamo, da sprejemamo odločitve, kasneje v tem članku bomo videli, kako to storiti, pred tem pa je tukaj seznam nekaterih primerjalnih operaterjev.

Celoštevilska primerjava

Operater Opis
-ekv je enako
- je ni enako
-gt je večji od
-ge je večje ali enako
-Lt je manj kot
- je manjše ali enako

Primerjava nizov

Operater Opis
== je enako
!= ni enako
< je manj kot v abecednem vrstnem redu ASCII
> je večje od v abecednem vrstnem redu ASCII

Pred tem dodamo , ker jih je treba ubežati, ko jih vnesemo v konstrukt [ ]. Zdaj pa poglejmo, kje se uporabljajo.

Pogojni stavki

Pogojni stavki se uporabljajo za izvajanje bloka kode le, ko so izpolnjeni določeni pogoji. Lupinski skripti podpirajo uporabo pogojnih stavkov. Za preverjanje pogojev uporabljamo primerjalne operatorje. Poglejmo nekaj pogojnih izjav.

drugače java

Če izjava

Preveri pogoj in če je pogoj resničen, izvede ukaze.

Sintaksa

if [ condition ] then #statements fi>

Poglejmo primer.

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

.if izjava

Izjava if-else

V stavku if-else lahko podate niz ukazov, ki naj se zaženejo, če pogoj ni izpolnjen.

Sintaksa

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

Poglejmo primer

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

.if-else izjava

Obstajajo še drugi pogojni stavki, o njih lahko preberete tukaj .

Opomba: Vnesite presledek za [ in pred ], medtem ko navajate pogoj, ki ga želite preveriti, sicer se prikaže napaka.

Zanke

Z uporabo zank lahko niz ukazov izvajate znova in znova, dokler ni izpolnjen določen pogoj. Oglejmo si nekaj zank.

Medtem ko zanka

Če je pogoj resničen, začne izvajati navedene ukaze in jih ponavlja, dokler pogoj ni false.

Sintaksa

while [ condition ] do #set of statements done>

Poglejmo primer.

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

Medtem ko zanka

Stavek expr priložimo znotraj ``, ko ga dodeljujemo spremenljivki. O ukazu expr si lahko preberete tukaj.

Za zanko

V zanki for spremenljivka ponovi seznam vrednosti in se konča, ko ni več vrednosti za ponovitev.

parameter v lupinskem skriptu

Sintaksa

for var in val1 val2 val3 do #statements done>

Poglejmo primer.

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

za zanko

O zankah lahko preberete podrobno tukaj .

Pozicijski argumenti

Pozicijski argumenti so argumenti ali vrednosti, ki jih posredujemo lupinskemu skriptu med izvajanjem skripta. Do njih lahko dostopate s spremenljivkami

Shell je vmesnik operacijskega sistema. Sprejema ukaze uporabnikov in jih interpretira operacijskemu sistemu. Če želite zagnati več ukazov skupaj, lahko to storite tako, da ustvarite lupinski skript. Lupinski skripti so zelo uporabni, če morate rutinsko opravljati nalogo, na primer ustvarjanje varnostne kopije. Te ukaze lahko naštejete in jih vse izvedete z enim samim skriptom. Poglejmo, kako lahko ustvarite lupinski skript in ga zaženete v sistemu Linux.

Ustvarjanje lupinskega skripta

Prijavite se v svoj stroj Linux in odprite terminal, pomaknite se do mape, v katero želite shraniti lupinski skript. Lupinski skripti se končajo s pripono .sh. Ustvarimo svoj prvi lupinski skript. Vtipkaj

touch script.sh>

Ta skriptna datoteka privzeto ni izvršljiva, tej datoteki moramo dati izvršljivo dovoljenje. Vtipkaj

chmod +x script.sh>

Zdaj bomo temu skriptu lupine dodali nekaj ukazov. Odprite ta lupinski skript s katerim koli urejevalnikom besedil po vaši izbiri (na osnovi ukazne vrstice ali GUI) in dodajte nekaj ukazov. Uporabili bomo nano. Vtipkaj

nano script.sh>

Dodajte naslednje ukaze, da preizkusite ta lupinski skript

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

Shranite spremembe in zaženite lupinski skript tako, da vnesete

./script.sh>

Posnetek zaslona zgornjih korakov

Vidite lahko, da je izvršil vse podane ukaze.

Komentarji v lupinskem skriptu

Vsaka vrstica, ki se v skriptu lupine začne z #, se obravnava kot komentar in jo lupina med izvajanjem prezre, razen vrstice shebang, ki jo bomo videli kasneje v tem članku. Poglejmo primer. Ustvari se lupinski skript z naslednjo vsebino.

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

Komentarji v skriptu Shell

Vidite lahko, da je komentar prezrt.

Spremenljivke v lupinskem skriptu

Da, skripti lupine podpirajo uporabo spremenljivk in ni nam treba definirati vrste spremenljivke med njeno deklaracijo. Obstajata dve vrsti spremenljivk:

  • Sistemsko definirane spremenljivke
  • Uporabniško definirane spremenljivke.

Sistemsko definirane spremenljivke, imenovane tudi spremenljivke okolja, so na splošno napisane z veliko začetnico. Z ukazom printenv si lahko ogledate vse trenutne spremenljivke okolja. Uporabniško definirane spremenljivke nastavi uporabnik in obstajajo le med izvajanjem skripta. Spremenljivko lahko definirate tako, da preprosto vnesete njeno ime in dodelite vrednost z znakom = ter dostopate do spremenljivke tako, da dodate $ pred ime spremenljivke. Spremenljivke so prikazane v naslednjem primeru skripta.

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

Spremenljivke v lupinskem skriptu

Definiranje tolmača Shell Script

V Linuxu je na voljo veliko lupin, kot so The bourne shell(sh), The Korn Shell(ksh) in GNU Bourne-Again Shell(bash). Skripti, napisani za lupino sh, se imenujejo skripti lupine in jih lahko razlagata obe lupini, ksh in bash. ksh in Bash sta izboljšani različici originalne lupine sh in imata več funkcij kot sh. Bash je na splošno privzeta lupina v večini distribucij Linuxa in skripti, napisani posebej za lupino bash, se imenujejo skripti bash.

Določite lahko, katero lupino bo uporabil skript, tudi če se skript izvaja iz drugega terminala lupine. Če želite to narediti, dodajte #! na vrhu skriptne datoteke, ki ji sledi absolutna pot izbrane lupine. Če želite določiti bash kot tolmača, dodajte naslednjo vrstico na vrh lupinskega skripta.

#!/bin/bash>

Ta linija se imenuje shebang linija.

Opomba: To bo delovalo samo, če je v vašem sistemu nameščen bash.

Operatorji primerjave

V skriptni lupini lahko primerjate dve spremenljivki. Te primerjave delamo, da sprejemamo odločitve, kasneje v tem članku bomo videli, kako to storiti, pred tem pa je tukaj seznam nekaterih primerjalnih operaterjev.

Celoštevilska primerjava

Operater Opis
-ekv je enako
- je ni enako
-gt je večji od
-ge je večje ali enako
-Lt je manj kot
- je manjše ali enako

Primerjava nizov

Operater Opis
== je enako
!= ni enako
< je manj kot v abecednem vrstnem redu ASCII
> je večje od v abecednem vrstnem redu ASCII

Pred tem dodamo , ker jih je treba ubežati, ko jih vnesemo v konstrukt [ ]. Zdaj pa poglejmo, kje se uporabljajo.

Pogojni stavki

Pogojni stavki se uporabljajo za izvajanje bloka kode le, ko so izpolnjeni določeni pogoji. Lupinski skripti podpirajo uporabo pogojnih stavkov. Za preverjanje pogojev uporabljamo primerjalne operatorje. Poglejmo nekaj pogojnih izjav.

Če izjava

Preveri pogoj in če je pogoj resničen, izvede ukaze.

Sintaksa

if [ condition ] then #statements fi>

Poglejmo primer.

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

.if izjava

Izjava if-else

V stavku if-else lahko podate niz ukazov, ki naj se zaženejo, če pogoj ni izpolnjen.

Sintaksa

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

Poglejmo primer

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

.if-else izjava

Obstajajo še drugi pogojni stavki, o njih lahko preberete tukaj .

Opomba: Vnesite presledek za [ in pred ], medtem ko navajate pogoj, ki ga želite preveriti, sicer se prikaže napaka.

Zanke

Z uporabo zank lahko niz ukazov izvajate znova in znova, dokler ni izpolnjen določen pogoj. Oglejmo si nekaj zank.

Medtem ko zanka

Če je pogoj resničen, začne izvajati navedene ukaze in jih ponavlja, dokler pogoj ni false.

Sintaksa

while [ condition ] do #set of statements done>

Poglejmo primer.

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

Medtem ko zanka

Stavek expr priložimo znotraj ``, ko ga dodeljujemo spremenljivki. O ukazu expr si lahko preberete tukaj.

Za zanko

V zanki for spremenljivka ponovi seznam vrednosti in se konča, ko ni več vrednosti za ponovitev.

Sintaksa

for var in val1 val2 val3 do #statements done>

Poglejmo primer.

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

za zanko

O zankah lahko preberete podrobno tukaj .

Pozicijski argumenti

Pozicijski argumenti so argumenti ali vrednosti, ki jih posredujemo lupinskemu skriptu med izvajanjem skripta. Do njih lahko dostopate s spremenljivkami $0, $1, $2 … $9. Poleg tega se nanje sklicujejo ${10}, ${11} in tako naprej. $# shrani št. posredovanih argumentov in $0 shrani ime skripta. Oglejmo si primer, da bomo vse to razumeli.

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

Če želite posredovati argumente, jih preprosto vnesite v terminal za imenom skripta, kot je prikazano spodaj.

Pozicijski argumenti

Shranjevanje izhoda ukazov

Izhod ukazov lahko shranite znotraj spremenljivke v lupinskem skriptu. To lahko storite na dva načina.

Sintaksa

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

Poglejmo primer.

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

Shranjevanje izhoda ukazov

Izhodne kode ukazov lupine

Kadarkoli se ukaz konča in vrne nadzor nadrejenemu procesu, vrne izhodne kode med 0 in 255. Izhodna koda 0 pomeni, da je bil ukaz uspešen, katera koli druga izhodna koda pa pomeni, da ukaz ni bil uspešen. Izhodno kodo si lahko ogledate po zagonu katerega koli ukaza z dostopom do $? spremenljivka. Oglejte si spodnji primer.

izhodna koda ukaza lupine

Ročno lahko nastavite izhodno kodo za lupinski skript. To lahko uporabite s pogojnimi stavki, da sporočite, ali je bil namen skripta dosežen ali ne.

Primer

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

izhodna koda ukaza lupine



, , … . Poleg tega se nanje sklicujejo , in tako naprej. $# shrani št. posredovanih argumentov in

Shell je vmesnik operacijskega sistema. Sprejema ukaze uporabnikov in jih interpretira operacijskemu sistemu. Če želite zagnati več ukazov skupaj, lahko to storite tako, da ustvarite lupinski skript. Lupinski skripti so zelo uporabni, če morate rutinsko opravljati nalogo, na primer ustvarjanje varnostne kopije. Te ukaze lahko naštejete in jih vse izvedete z enim samim skriptom. Poglejmo, kako lahko ustvarite lupinski skript in ga zaženete v sistemu Linux.

Ustvarjanje lupinskega skripta

Prijavite se v svoj stroj Linux in odprite terminal, pomaknite se do mape, v katero želite shraniti lupinski skript. Lupinski skripti se končajo s pripono .sh. Ustvarimo svoj prvi lupinski skript. Vtipkaj

touch script.sh>

Ta skriptna datoteka privzeto ni izvršljiva, tej datoteki moramo dati izvršljivo dovoljenje. Vtipkaj

chmod +x script.sh>

Zdaj bomo temu skriptu lupine dodali nekaj ukazov. Odprite ta lupinski skript s katerim koli urejevalnikom besedil po vaši izbiri (na osnovi ukazne vrstice ali GUI) in dodajte nekaj ukazov. Uporabili bomo nano. Vtipkaj

nano script.sh>

Dodajte naslednje ukaze, da preizkusite ta lupinski skript

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

Shranite spremembe in zaženite lupinski skript tako, da vnesete

./script.sh>

Posnetek zaslona zgornjih korakov

Vidite lahko, da je izvršil vse podane ukaze.

Komentarji v lupinskem skriptu

Vsaka vrstica, ki se v skriptu lupine začne z #, se obravnava kot komentar in jo lupina med izvajanjem prezre, razen vrstice shebang, ki jo bomo videli kasneje v tem članku. Poglejmo primer. Ustvari se lupinski skript z naslednjo vsebino.

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

Komentarji v skriptu Shell

Vidite lahko, da je komentar prezrt.

Spremenljivke v lupinskem skriptu

Da, skripti lupine podpirajo uporabo spremenljivk in ni nam treba definirati vrste spremenljivke med njeno deklaracijo. Obstajata dve vrsti spremenljivk:

  • Sistemsko definirane spremenljivke
  • Uporabniško definirane spremenljivke.

Sistemsko definirane spremenljivke, imenovane tudi spremenljivke okolja, so na splošno napisane z veliko začetnico. Z ukazom printenv si lahko ogledate vse trenutne spremenljivke okolja. Uporabniško definirane spremenljivke nastavi uporabnik in obstajajo le med izvajanjem skripta. Spremenljivko lahko definirate tako, da preprosto vnesete njeno ime in dodelite vrednost z znakom = ter dostopate do spremenljivke tako, da dodate $ pred ime spremenljivke. Spremenljivke so prikazane v naslednjem primeru skripta.

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

Spremenljivke v lupinskem skriptu

Definiranje tolmača Shell Script

V Linuxu je na voljo veliko lupin, kot so The bourne shell(sh), The Korn Shell(ksh) in GNU Bourne-Again Shell(bash). Skripti, napisani za lupino sh, se imenujejo skripti lupine in jih lahko razlagata obe lupini, ksh in bash. ksh in Bash sta izboljšani različici originalne lupine sh in imata več funkcij kot sh. Bash je na splošno privzeta lupina v večini distribucij Linuxa in skripti, napisani posebej za lupino bash, se imenujejo skripti bash.

Določite lahko, katero lupino bo uporabil skript, tudi če se skript izvaja iz drugega terminala lupine. Če želite to narediti, dodajte #! na vrhu skriptne datoteke, ki ji sledi absolutna pot izbrane lupine. Če želite določiti bash kot tolmača, dodajte naslednjo vrstico na vrh lupinskega skripta.

#!/bin/bash>

Ta linija se imenuje shebang linija.

Opomba: To bo delovalo samo, če je v vašem sistemu nameščen bash.

Operatorji primerjave

V skriptni lupini lahko primerjate dve spremenljivki. Te primerjave delamo, da sprejemamo odločitve, kasneje v tem članku bomo videli, kako to storiti, pred tem pa je tukaj seznam nekaterih primerjalnih operaterjev.

Celoštevilska primerjava

Operater Opis
-ekv je enako
- je ni enako
-gt je večji od
-ge je večje ali enako
-Lt je manj kot
- je manjše ali enako

Primerjava nizov

Operater Opis
== je enako
!= ni enako
< je manj kot v abecednem vrstnem redu ASCII
> je večje od v abecednem vrstnem redu ASCII

Pred tem dodamo , ker jih je treba ubežati, ko jih vnesemo v konstrukt [ ]. Zdaj pa poglejmo, kje se uporabljajo.

Pogojni stavki

Pogojni stavki se uporabljajo za izvajanje bloka kode le, ko so izpolnjeni določeni pogoji. Lupinski skripti podpirajo uporabo pogojnih stavkov. Za preverjanje pogojev uporabljamo primerjalne operatorje. Poglejmo nekaj pogojnih izjav.

Če izjava

Preveri pogoj in če je pogoj resničen, izvede ukaze.

Sintaksa

if [ condition ] then #statements fi>

Poglejmo primer.

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

.if izjava

Izjava if-else

V stavku if-else lahko podate niz ukazov, ki naj se zaženejo, če pogoj ni izpolnjen.

Sintaksa

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

Poglejmo primer

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

.if-else izjava

Obstajajo še drugi pogojni stavki, o njih lahko preberete tukaj .

Opomba: Vnesite presledek za [ in pred ], medtem ko navajate pogoj, ki ga želite preveriti, sicer se prikaže napaka.

Zanke

Z uporabo zank lahko niz ukazov izvajate znova in znova, dokler ni izpolnjen določen pogoj. Oglejmo si nekaj zank.

Medtem ko zanka

Če je pogoj resničen, začne izvajati navedene ukaze in jih ponavlja, dokler pogoj ni false.

Sintaksa

while [ condition ] do #set of statements done>

Poglejmo primer.

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

Medtem ko zanka

Stavek expr priložimo znotraj ``, ko ga dodeljujemo spremenljivki. O ukazu expr si lahko preberete tukaj.

Za zanko

V zanki for spremenljivka ponovi seznam vrednosti in se konča, ko ni več vrednosti za ponovitev.

Sintaksa

for var in val1 val2 val3 do #statements done>

Poglejmo primer.

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

za zanko

O zankah lahko preberete podrobno tukaj .

Pozicijski argumenti

Pozicijski argumenti so argumenti ali vrednosti, ki jih posredujemo lupinskemu skriptu med izvajanjem skripta. Do njih lahko dostopate s spremenljivkami $0, $1, $2 … $9. Poleg tega se nanje sklicujejo ${10}, ${11} in tako naprej. $# shrani št. posredovanih argumentov in $0 shrani ime skripta. Oglejmo si primer, da bomo vse to razumeli.

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

Če želite posredovati argumente, jih preprosto vnesite v terminal za imenom skripta, kot je prikazano spodaj.

Pozicijski argumenti

Shranjevanje izhoda ukazov

Izhod ukazov lahko shranite znotraj spremenljivke v lupinskem skriptu. To lahko storite na dva načina.

Sintaksa

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

Poglejmo primer.

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

Shranjevanje izhoda ukazov

Izhodne kode ukazov lupine

Kadarkoli se ukaz konča in vrne nadzor nadrejenemu procesu, vrne izhodne kode med 0 in 255. Izhodna koda 0 pomeni, da je bil ukaz uspešen, katera koli druga izhodna koda pa pomeni, da ukaz ni bil uspešen. Izhodno kodo si lahko ogledate po zagonu katerega koli ukaza z dostopom do $? spremenljivka. Oglejte si spodnji primer.

izhodna koda ukaza lupine

Ročno lahko nastavite izhodno kodo za lupinski skript. To lahko uporabite s pogojnimi stavki, da sporočite, ali je bil namen skripta dosežen ali ne.

Primer

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

izhodna koda ukaza lupine



shrani ime skripta. Oglejmo si primer, da bomo vse to razumeli.

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

Shell je vmesnik operacijskega sistema. Sprejema ukaze uporabnikov in jih interpretira operacijskemu sistemu. Če želite zagnati več ukazov skupaj, lahko to storite tako, da ustvarite lupinski skript. Lupinski skripti so zelo uporabni, če morate rutinsko opravljati nalogo, na primer ustvarjanje varnostne kopije. Te ukaze lahko naštejete in jih vse izvedete z enim samim skriptom. Poglejmo, kako lahko ustvarite lupinski skript in ga zaženete v sistemu Linux.

Ustvarjanje lupinskega skripta

Prijavite se v svoj stroj Linux in odprite terminal, pomaknite se do mape, v katero želite shraniti lupinski skript. Lupinski skripti se končajo s pripono .sh. Ustvarimo svoj prvi lupinski skript. Vtipkaj

touch script.sh>

Ta skriptna datoteka privzeto ni izvršljiva, tej datoteki moramo dati izvršljivo dovoljenje. Vtipkaj

chmod +x script.sh>

Zdaj bomo temu skriptu lupine dodali nekaj ukazov. Odprite ta lupinski skript s katerim koli urejevalnikom besedil po vaši izbiri (na osnovi ukazne vrstice ali GUI) in dodajte nekaj ukazov. Uporabili bomo nano. Vtipkaj

nano script.sh>

Dodajte naslednje ukaze, da preizkusite ta lupinski skript

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

Shranite spremembe in zaženite lupinski skript tako, da vnesete

./script.sh>

Posnetek zaslona zgornjih korakov

Vidite lahko, da je izvršil vse podane ukaze.

Komentarji v lupinskem skriptu

Vsaka vrstica, ki se v skriptu lupine začne z #, se obravnava kot komentar in jo lupina med izvajanjem prezre, razen vrstice shebang, ki jo bomo videli kasneje v tem članku. Poglejmo primer. Ustvari se lupinski skript z naslednjo vsebino.

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

Komentarji v skriptu Shell

Vidite lahko, da je komentar prezrt.

Spremenljivke v lupinskem skriptu

Da, skripti lupine podpirajo uporabo spremenljivk in ni nam treba definirati vrste spremenljivke med njeno deklaracijo. Obstajata dve vrsti spremenljivk:

  • Sistemsko definirane spremenljivke
  • Uporabniško definirane spremenljivke.

Sistemsko definirane spremenljivke, imenovane tudi spremenljivke okolja, so na splošno napisane z veliko začetnico. Z ukazom printenv si lahko ogledate vse trenutne spremenljivke okolja. Uporabniško definirane spremenljivke nastavi uporabnik in obstajajo le med izvajanjem skripta. Spremenljivko lahko definirate tako, da preprosto vnesete njeno ime in dodelite vrednost z znakom = ter dostopate do spremenljivke tako, da dodate $ pred ime spremenljivke. Spremenljivke so prikazane v naslednjem primeru skripta.

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

Spremenljivke v lupinskem skriptu

Definiranje tolmača Shell Script

V Linuxu je na voljo veliko lupin, kot so The bourne shell(sh), The Korn Shell(ksh) in GNU Bourne-Again Shell(bash). Skripti, napisani za lupino sh, se imenujejo skripti lupine in jih lahko razlagata obe lupini, ksh in bash. ksh in Bash sta izboljšani različici originalne lupine sh in imata več funkcij kot sh. Bash je na splošno privzeta lupina v večini distribucij Linuxa in skripti, napisani posebej za lupino bash, se imenujejo skripti bash.

Določite lahko, katero lupino bo uporabil skript, tudi če se skript izvaja iz drugega terminala lupine. Če želite to narediti, dodajte #! na vrhu skriptne datoteke, ki ji sledi absolutna pot izbrane lupine. Če želite določiti bash kot tolmača, dodajte naslednjo vrstico na vrh lupinskega skripta.

#!/bin/bash>

Ta linija se imenuje shebang linija.

Opomba: To bo delovalo samo, če je v vašem sistemu nameščen bash.

Operatorji primerjave

V skriptni lupini lahko primerjate dve spremenljivki. Te primerjave delamo, da sprejemamo odločitve, kasneje v tem članku bomo videli, kako to storiti, pred tem pa je tukaj seznam nekaterih primerjalnih operaterjev.

Celoštevilska primerjava

Operater Opis
-ekv je enako
- je ni enako
-gt je večji od
-ge je večje ali enako
-Lt je manj kot
- je manjše ali enako

Primerjava nizov

Operater Opis
== je enako
!= ni enako
< je manj kot v abecednem vrstnem redu ASCII
> je večje od v abecednem vrstnem redu ASCII

Pred tem dodamo , ker jih je treba ubežati, ko jih vnesemo v konstrukt [ ]. Zdaj pa poglejmo, kje se uporabljajo.

Pogojni stavki

Pogojni stavki se uporabljajo za izvajanje bloka kode le, ko so izpolnjeni določeni pogoji. Lupinski skripti podpirajo uporabo pogojnih stavkov. Za preverjanje pogojev uporabljamo primerjalne operatorje. Poglejmo nekaj pogojnih izjav.

Če izjava

Preveri pogoj in če je pogoj resničen, izvede ukaze.

Sintaksa

if [ condition ] then #statements fi>

Poglejmo primer.

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

.if izjava

Izjava if-else

V stavku if-else lahko podate niz ukazov, ki naj se zaženejo, če pogoj ni izpolnjen.

Sintaksa

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

Poglejmo primer

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

.if-else izjava

Obstajajo še drugi pogojni stavki, o njih lahko preberete tukaj .

Opomba: Vnesite presledek za [ in pred ], medtem ko navajate pogoj, ki ga želite preveriti, sicer se prikaže napaka.

Zanke

Z uporabo zank lahko niz ukazov izvajate znova in znova, dokler ni izpolnjen določen pogoj. Oglejmo si nekaj zank.

Medtem ko zanka

Če je pogoj resničen, začne izvajati navedene ukaze in jih ponavlja, dokler pogoj ni false.

Sintaksa

while [ condition ] do #set of statements done>

Poglejmo primer.

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

Medtem ko zanka

Stavek expr priložimo znotraj ``, ko ga dodeljujemo spremenljivki. O ukazu expr si lahko preberete tukaj.

Za zanko

V zanki for spremenljivka ponovi seznam vrednosti in se konča, ko ni več vrednosti za ponovitev.

Sintaksa

for var in val1 val2 val3 do #statements done>

Poglejmo primer.

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

za zanko

O zankah lahko preberete podrobno tukaj .

Pozicijski argumenti

Pozicijski argumenti so argumenti ali vrednosti, ki jih posredujemo lupinskemu skriptu med izvajanjem skripta. Do njih lahko dostopate s spremenljivkami $0, $1, $2 … $9. Poleg tega se nanje sklicujejo ${10}, ${11} in tako naprej. $# shrani št. posredovanih argumentov in $0 shrani ime skripta. Oglejmo si primer, da bomo vse to razumeli.

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

Če želite posredovati argumente, jih preprosto vnesite v terminal za imenom skripta, kot je prikazano spodaj.

Pozicijski argumenti

Shranjevanje izhoda ukazov

Izhod ukazov lahko shranite znotraj spremenljivke v lupinskem skriptu. To lahko storite na dva načina.

Sintaksa

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

Poglejmo primer.

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

Shranjevanje izhoda ukazov

Izhodne kode ukazov lupine

Kadarkoli se ukaz konča in vrne nadzor nadrejenemu procesu, vrne izhodne kode med 0 in 255. Izhodna koda 0 pomeni, da je bil ukaz uspešen, katera koli druga izhodna koda pa pomeni, da ukaz ni bil uspešen. Izhodno kodo si lahko ogledate po zagonu katerega koli ukaza z dostopom do $? spremenljivka. Oglejte si spodnji primer.

izhodna koda ukaza lupine

Ročno lahko nastavite izhodno kodo za lupinski skript. To lahko uporabite s pogojnimi stavki, da sporočite, ali je bil namen skripta dosežen ali ne.

Primer

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

izhodna koda ukaza lupine



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

Če želite posredovati argumente, jih preprosto vnesite v terminal za imenom skripta, kot je prikazano spodaj.

Pozicijski argumenti

Shranjevanje izhoda ukazov

Izhod ukazov lahko shranite znotraj spremenljivke v lupinskem skriptu. To lahko storite na dva načina.

Sintaksa

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

Poglejmo primer.

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

Shranjevanje izhoda ukazov

Izhodne kode ukazov lupine

Kadarkoli se ukaz konča in vrne nadzor nadrejenemu procesu, vrne izhodne kode med 0 in 255. Izhodna koda 0 pomeni, da je bil ukaz uspešen, katera koli druga izhodna koda pa pomeni, da ukaz ni bil uspešen. Izhodno kodo si lahko ogledate po zagonu katerega koli ukaza z dostopom do $? spremenljivka. Oglejte si spodnji primer.

izhodna koda ukaza lupine

Ročno lahko nastavite izhodno kodo za lupinski skript. To lahko uporabite s pogojnimi stavki, da sporočite, ali je bil namen skripta dosežen ali ne.

Primer

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

izhodna koda ukaza lupine