Извршавање команде помоћу Shell скрипте у Linux-у

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