Tutorial Shell Scripting
Cuprins
Cum scriem scripturi shell
Urmatorii pasi sunt necesari pentru scrierea scripturilor shell:
- folositi editorul dumneavoastra preferat (eu folosesc mcedit); primul rand din fisier trebuie sa fie urmatorul:
#!/bin/bash
- dupa scrierea scriptului, setati permisiunile fisierului dupa cum urmeaza:
chmod permisiuni script Exemplu: # chmod +x scriptul-meu # chmod 755 scriptul-meu
- executarea scriptului dupa cum urmeaza:
Sintaxa bash scriptul-meu sh scriptul-meu ./scriptul-meu Exemple # bash scriptul-meu # sh scriptul-meu # ./scriptul-meu
Acum suntem pregatiti sa scriem primul script shell care va afisa "Acesta este primul meu script". Vom crea fisierul scriptul-meu.sh in care vom pune liniile de mai jos. Crearea fisierului si scrierea lui se va face folosind comenzile:
# touch scriptul-meu.sh # mcedit scriptul-meu.sh
#!/bin/bash clear echo "Acesta este primul meu script"
Dupa salvarea fisierului putem rula scriptul cu urmatoarea comanda:
# ./scriptul-meu.sh
Vom observa ca scriptul nu a fost rulat deoarece nu am setat atributul de executie scriptului. Pentru a face acest lucru vom rula comanda:
# chmod +x scriptul-meu.sh
Acest script va sterge ecranul si va afisa apoi pe acesta "Acesta este primul meu script" Pentru scripturi scrise in shell scripting este recomandat sa se foloseasca extensia .sh penntru a fi mai usor recunoscute.
Exercitiu. Scrieti si executati urmatorul script:
#!/bin/bash clear echo "Buna $USER" echo "Astazi este"; date echo "Numarul userilor logati este"; who | wc -l echo "Calendarul este" cal
Variabilele in Shell
In shell scripting exista doua tipuri de variabile:
- Variabilele sistemului, acestea sunt create si mentinute de catre linux, si sunt scrise cu majuscule;
- Variabilele definite de catre utilizator, acestea sunt scrise cu minuscule.
Pentru a vizualiza o lista cu toate variabilele sistemului si valorile atribuite acestora, se poate da comanda shell:
# set
Pentru a vizualiza doar valorile unor anumite variabile se pot da comenzile:
# echo $USER # echo $HOME
Cum sa utilizam variabilele definite de utilizator
Sintaxa numele_variabilei=valoare
Urmatoarea atribuire este corecta:
# numar=10
Urmatoarea nu este corecta, deoarece numele variabilei trebuie sa se afle in stanga semnului egal iar valoare atribuita acesteia in dreapta.
# 10=numar
Salvati si executati urmatorul script
#!/bin/bash clear numar=10 echo $numar
Reguli in definirea variabilelor (atat cele ale sistemului cat si cele definite de utilizator)
- Variabilele trebuie sa inceapa cu un caracter alfanumeric sau cu un "underscore" (_) urmat de cel putin un caracter alfanumeric.
Exemple HOME SYSTEM_VERSION vehicul numar
- Nu folosite spatii in nici una din partile semnului egal.
Urmatoarea atribuire este corecta:
numar=10
Urmatoarele atribuiri sunt insa incorecte:
numar =10 numar= 10 numar = 10
- Variabilele sunt case-sensitive, la fel ca si numele fisierelor in linux. Urmatoarele variabile nu sunt identice, ci diferite:
no=10 No=11 NO=20 nO=2
- Pot de asemenea fi definite variabile nule, dupa cum se vede in exemplul urmator:
vehicul= vehicul=""