Tutorial Shell Scripting: Diferență între versiuni

De la Wiki.lug.ro
Salt la: navigare, căutare
(Cum scriem scripturi shell)
Linia 12: Linia 12:
 
   
 
   
 
  <i>Exemplu:</i>
 
  <i>Exemplu:</i>
 +
 
  # chmod +x scriptul-meu
 
  # chmod +x scriptul-meu
 
  # chmod 755 scriptul-meu
 
  # chmod 755 scriptul-meu
Linia 17: Linia 18:
 
* executarea scriptului dupa cum urmeaza:
 
* executarea scriptului dupa cum urmeaza:
  
  <i>Sintaxa</i>  
+
  <i>Sintaxa</i>
 +
 
 
  bash scriptul-meu
 
  bash scriptul-meu
 
  sh scriptul-meu
 
  sh scriptul-meu
Linia 23: Linia 25:
 
   
 
   
 
  <i>Exemple</i>
 
  <i>Exemple</i>
 +
 
  # bash scriptul-meu
 
  # bash scriptul-meu
 
  # sh scriptul-meu
 
  # sh scriptul-meu
Linia 72: Linia 75:
 
  # echo $USER
 
  # echo $USER
 
  # echo $HOME
 
  # echo $HOME
 +
 +
==Cum sa utilizam variabilele definite de utilizator==
 +
 +
<i>Sintaxa</i>
 +
 +
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.
 +
 +
<i>Exemple</i>
 +
 +
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

Versiunea de la data 14 februarie 2006 22:17

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