Shell skripte su izuzetno korisno sredstvo za automatizaciju zadataka i upravljanje sistemom u Linux okruženju. One omogućavaju korisnicima da grupišu i izvršavaju seriju komandi unutar jedne datoteke, što značajno ubrzava i pojednostavljuje rutinske operacije. U ovom tekstu, detaljno ćemo istražiti kako se komande izvršavaju unutar shell skripti u Linuxu.
Uvod u Shell skripte
Shell skripte imaju široku primenu u različitim oblastima, uključujući:
- Automatizaciju ponavljajućih zadataka (kao što su pravljenje rezervnih kopija ili ažuriranje sistema).
- Upravljanje datotekama i direktorijumima.
- Pokretanje aplikacija i programa.
- Interakciju sa korisnicima.
Za kreiranje i izmenu shell skripti, možete koristiti bilo koji tekstualni editor, na primer, Nano, Vi ili Emacs. Za početak stvaranja nove shell skripte, otvorite željeni editor i unesite sledeću liniju:
#!/bin/bash
Ova linija specificira interpreter shell-a koji će se koristiti za izvršavanje skripte. U većini slučajeva, Bash shell je sasvim dovoljan.
Izvršavanje komandi u Shell skripti
Komande se izvršavaju u shell skripti na isti način kao što biste ih unosili u komandnoj liniji. Na primer, sledeća komanda će prikazati sadržaj direktorijuma /home/korisnik
:
cd /home/korisnik
ls -l
Možete kombinovati više komandi koristeći znak za novi red (;
). To će uzrokovati da se naredna komanda izvrši tek kada se prethodna završi. Na primer, sledeća skripta će kreirati novi direktorijum, preći u njega i potom prikazati sadržaj:
#!/bin/bash
mkdir novi_direktorijum
cd novi_direktorijum
ls -l
Redosled izvršavanja i uslovne izjave
Komande u shell skripti izvršavaju se sekvencijalno, od vrha ka dnu. Međutim, možete koristiti uslovne izjave da biste kontrolisali tok izvršavanja.
Na primer, sledeća skripta koristi if
naredbu da proveri da li datoteka postoji i, ako postoji, prikaže njen sadržaj:
#!/bin/bash
if [ -f moja_datoteka.txt ]; then
cat moja_datoteka.txt
fi
Takođe možete koristiti else
i elif
komande da biste definisali alternativne akcije na osnovu rezultata uslovne izjave.
Petlje u Shell skripti
Petlje se koriste za ponavljanje određenog bloka komandi. U shell skriptama, postoje tri osnovna tipa petlji:
- For petlja:
for
petlja se ponavlja za svaki element u listi ili opsegu. - While petlja:
while
petlja se ponavlja sve dok je dati uslov istinit. - Until petlja:
until
petlja se ponavlja sve dok dati uslov nije istinit.
Na primer, sledeća skripta koristi for
petlju za izračunavanje faktorijala datog broja:
#!/bin/bash
faktorijal=1
for i in $(seq 1 $1); do
faktorijal=$((faktorijal * i))
done
echo „Faktorijal broja $1 je: $faktorijal“
Funkcije u Shell skripti
Funkcije se koriste za grupisanje niza komandi i ponovnu upotrebu koda u skripti. Funkcija se definiše na sledeći način:
function ime_funkcije() {
// Komande funkcije
}
Funkcije se pozivaju iz bilo kog dela skripte koristeći njihovo ime. Na primer, sledeća skripta definiše funkciju koja proverava da li je broj paran i koristi je za pronalaženje svih parnih brojeva u određenom opsegu:
#!/bin/bash
function je_paran() {
if [ $1 % 2 -eq 0 ]; then
return 0
else
return 1
fi
}
for i in $(seq 1 10); do
if je_paran $i; then
echo „$i je paran broj“
fi
done
Zaključak
Shell skripte predstavljaju snažan alat za automatizaciju zadataka i upravljanje sistemom u Linuxu. Korisnicima omogućavaju da grupišu i izvršavaju niz komandi u jednoj datoteci, čime se postiže veća brzina i efikasnost u obavljanju rutinskih operacija.
U ovom tekstu, obradili smo osnove izvršavanja komandi pomoću shell skripti, uključujući redosled izvršavanja, uslovne izjave, petlje i funkcije. Sposobnost kreiranja i korišćenja shell skripti značajno može unaprediti produktivnost i efikasnost u Linux okruženju.
Često postavljana pitanja (FAQ)
1. Koji shell interpreter treba koristiti za shell skripte?
* U većini slučajeva, Bash shell je sasvim dovoljan, i predstavlja podrazumevani shell u većini Linux distribucija.
2. Kako se menjaju dozvole za shell skriptu?
* Koristite chmod
naredbu sa odgovarajućim opcijama. Na primer, chmod +x moja_skripta.sh
će omogućiti da se skripta izvršava.
3. Kako se izvršava shell skripta iz druge skripte?
* Koristite source
naredbu ili .
operator. Na primer, source moja_skripta.sh
će pokrenuti skriptu moja_skripta.sh
.
4. Kako se prosleđuju argumenti shell skripti?
* Argumenti se prosleđuju pomoću $@
parametra. Na primer, echo $@
će prikazati sve argumente prosleđene skripti.
5. Kako se obrađuju greške u shell skripti?
* Koristite set -e
na početku skripte da bi se skripta zaustavila čim se pojavi greška. Takođe možete koristiti trap
naredbu za hvatanje specifičnih signala greške.
6. Kako se vrši debug shell skripte?
* Koristite -x
opciju prilikom izvršavanja skripte za debug. Takođe možete koristiti set -x
komandu unutar skripte.
7. Koje su korisne komande za upravljanje datotekama u shell skripti?
* mkdir, rmdir, cp, mv, ls, cat
8. Koje su korisne komande za upravljanje procesima u shell skripti?
* ps, kill, sleep, wait
9. Kako se dobija pomoć za određenu komandu u shell skripti?
* Koristite man
ili help
komandu sa imenom komande. Na primer, man ls
će prikazati dokumentaciju za ls
naredbu.
10. Gde se mogu naći dodatni resursi o shell skriptovanju u Linuxu?
* Bash programski uvod za početnike
* Script Shell
* UNIX Shell skriptovanje