Documente Academic
Documente Profesional
Documente Cultură
Interpretorul de comenzi Shell permite utilizatorului realizarea unor programe, numite Formatted: Font: (Default) Courier New, Bold, Not
Shell Scripts, facilitând construirea unor secvenţe de comenzi ce sunt plasate în nişte Italic, Underline
fişiere de tip text și sunt executate în mod identic cu programele compilate. Shell-ul dispune Formatted: Font: (Default) Courier New, Bold
de un limbaj de programare şi este identificat cu o interfaţă în linia de comandă. Formatted: Font: (Default) Courier New, Bold
Șirul #! de la începutul fișierului poartă denumirea de shebang. Acesta indică sistemului ce program va fi Formatted: Font: (Default) +Body (Calibri), 11 pt,
invocat pentru a interpreta script-ul. English (United States)
Formatted: Font: 11 pt, Bold, Not Italic, English (United
#!/bin/bash
States)
Caracterul # semnifică începutul unui comentariu care durează până la sfârșitul liniei. Comanda
Formatted: Font: (Default) Courier New, Bold
exit este folosită pentru a indica valoarea de retur a script-ului. Este implicit 0.
Formatted: Font: (Default) Courier New
Shell-ul prezintă o serie de operatori folosiți pentru îmbinarea comenzilor. Formatted: Font: (Default) Courier New
Concatenarea comenzilor. Următorii operatori sunt folosiți pentru concatenarea diverselor
Formatted: Font: (Default) Courier New, Bold
comenzi:
command1 ; command2 - comenzile sunt executate secvențial (una după alta); Formatted: Font: (Default) Courier New, Bold
command1 && command2 - command2 este executată numai dacă command1 are Formatted: Font: (Default) Courier New, Bold
valoarea de retur 0;
command1 || comand2 - command2 este executată numai dacă command1 are valoarea Formatted: Font: (Default) Courier New, Bold
de retur diferită de 0.
Înlănțuirea comenzilor. Înlănțuirea comenzilor se realizează folosind operatorul | (pipe). Formatted: Font: (Default) Courier New
În această situație ieșirea unei comenzi devine intrarea pentru cealaltă. Formatted: Font: (Default) Courier New, Bold
Variabile. Ca orice limbaj, shell-ul permite utilizarea de variabile. Spre deosebire de Formatted: Font: (Default) Courier New, Bold
limbajele cunoscute, variabilele shell nu au tipuri. O variabilă poate fi evaluată atât ca număr Formatted: Font: (Default) Courier New, Bold
cât şi ca şir de caractere.
Sintaxa shell este foarte strictă; NU este permis să existe spaţii între numele variabilei şi Formatted: Font: (Default) Courier New
caracterul = sau între caracterul = şi valoarea variabilei.
Se observă că valoarea unei variabile este referită prin folosirea simbolului $. Formatted: Font: (Default) Courier New
Operații cu variabile. Asupra variabilelor se pot efectua operații aritmetice (folosind
operatori matematici) și operații logice (folosind operatori logici)
Operatorii matematici uzuali:
+ - adunarea; Formatted: Font: (Default) Courier New
Operatori aritmetici folosiți în evaluarea expresiilor: Formatted: Font: (Default) Courier New
-eq (este egal cu); Formatted: Font: (Default) Courier New, Bold, Font
color: Text 1
-ne (nu este egal cu);
-lt (mai mic decat);
-le (mai mic sau egal);
-gt (mai mare decat);
-ge (mai mare sau egal).
Operatori pentru întregi:
- int1 -eq int2 - întoarce True dacă int1=int2; Formatted: Font: (Default) Courier New
- int1 -ge int2 - întoarce True dacă int1>=int2; Formatted: Font: (Default) Courier New
- int1 -gt int2 - întoarce True dacă int1>int2; Formatted: Font: (Default) Courier New
- int1 -le int2 - întoarce True dacă int1<=int2; Formatted: Font: (Default) Courier New
- int1 -lt int2 - întoarce True dacă int1<int2; Formatted: Font: (Default) Courier New
- int1 -ne int2 - întoarce True dacă int1 diferit de int2. Formatted: Font: (Default) Courier New
- str1=str2 - întoarce True dacă str1=str2; Formatted: Font: (Default) Courier New
- str1!=str2 - întoarce True dacă str1 diferit de str2; Formatted: Font: (Default) Courier New
- str - întoarce True dacă str nu este vid; Formatted: Font: (Default) Courier New
- -n str - întoarce True dacă lungimea şirului este mai mare ca 0; Formatted: Font: (Default) Courier New
- -z str - întoarce True dacă şirul are lungimea 0. Formatted: Font: (Default) Courier New
Exemplu: [_”$a”_ =_”$b”_] - se compară valorile a şi b, simbolul ‚_’ semnifică spațiu Formatted: Font: (Default) Courier New, Bold
(blank space).
Operatori pentru fișiere:
- -d nume_fişier - întoarce True dacă fişierul este director; Formatted: Font: (Default) Courier New
- -f nume_fişier - întoarce True dacă fişierul este fişier obişnuit; Formatted: Font: (Default) Courier New
- -r nume_fişier - întoarce True dacă fişierul poate fi citit de către proces; Formatted: Font: (Default) Courier New
- -s nume_fişier - întoarce True dacă fişierul are o lungime diferită de 0; Formatted: Font: (Default) Courier New
- -w nume_fişier - întoarce True dacă fişierul poate fie scris de către proces; Formatted: Font: (Default) Courier New
- -x nume_fişier - întoarce True dacă fişierul este executabil. Formatted: Font: (Default) Courier New
Operatori logici:
- ! expresie - întoarce True True dacă expresia nu este adevărată;
- expresie1 -a expresie2 - întoarce True True dacă cele două expresii sunt ambele adevărate
(şi);
- expresie1 -o expresie2 - întoarce True True dacă expresia 1 sau expresia 2 sunt adevărate
(sau).
Alte variabile importante:
- $# - conține numărul de opțiuni transmise programului în linia de comandă; Formatted: Font: (Default) Courier New
- $? - conține valoarea de ieșire a ultimei comenzi executate (orice program executat întoarce Formatted: Font: (Default) Courier New
o valoare; de obicei valoarea 0 înseamnă terminare normală a programului);
- $0 - numele scriptului (numele programului); Formatted: Font: (Default) Courier New
- $* - conține toate argumentele care au fost transmise; Formatted: Font: (Default) Courier New
- "$@" - conține toate argumentele care au fost transmise programului în linia de comandă, Formatted: Font: (Default) Courier New
fiecare între "".
Structuri de control pentru script-uri. În cadrul programării shell deosebim 2 tipuri de
Formatted: Font: (Default) Courier New
structuri principale:
structuri de decizie : if, select și case Formatted: Font: (Default) Courier New
structuri iterative (de buclă): while, until și for. Formatted: Font: (Default) Calibri, English (United
States)
if <lista_comenzi_1>
Formatted: Font: (Default) Calibri, Font color: Custom
then Color(RGB(0,0,10)), English (United States)
<lista_comenzi_2>
Formatted: Font: (Default) Calibri, English (United
[ else States)
<lista_comenzi_3> ]
Formatted: Font: (Default) Calibri, Font color: Custom
fi
Color(RGB(0,0,10)), English (United States)
case<expr>in Formatted: Font: (Default) Calibri, English (United
<sir_valori_1>)<lista_comenzi_1>;; States)
<sir_valori_2>)<lista_comenzi_2>;; Formatted: Font: (Default) Calibri, Font color: Custom
..... Color(RGB(0,0,10)), English (United States)
<sir_valori_N-1>)<lista_comenzi_N-1>;; Formatted: Font: (Default) Calibri, English (United
<sir_valori_N>)<lista_comenzi_N> States)
esac Formatted: Font: (Default) Calibri, Font color: Custom
while <lista_comenzi_1> Color(RGB(0,0,10)), English (United States)
do
Formatted: Font: (Default) Calibri, English (United
<lista_comenzi_2> States)
done
Formatted: Font: (Default) Calibri, Font color: Custom
Color(RGB(0,0,10)), English (United States)
until <lista_comenzi_1>
do Formatted: Font: (Default) Calibri, English (United
<lista_comenzi_2> States)
Formatted: Font: (Default) Courier New
Done