Bash Pagina 28: Diferență între versiuni

De la Wiki Linux Advanced
Sari la navigare Sari la căutare
(Pagină nouă: == If din nou == Instrucțiunile condiționale de tip ''if'' sunt esențiale pentru controlul execuției în scripturile shell și permit verificarea unor condiții complexe prin structuri imbricate și ramuri alternative. == Structuri ''if'' imbricate == - O structură de tip ''if'' poate fi inclusă într-o altă structură ''if'' pentru a verifica mai multe condiții în mod succesiv. '''Exemplu de structură ''if'' imbricată''' if ! -d "$bindir" ; then...)
 
 
(Nu s-au afișat 7 versiuni intermediare efectuate de același utilizator)
Linia 9: Linia 9:
'''Exemplu de structură ''if'' imbricată'''
'''Exemplu de structură ''if'' imbricată'''


 
  if <nowiki>[[ ! -d "$bindir" ]]</nowiki>; then
  if [[ ! -d "$bindir" ]]; then
     # Dacă directorul $bindir nu există, încearcă să-l creezi
     # Dacă directorul $bindir nu există, încearcă să-l creezi
     if mkdir "$bindir"; then
     if mkdir "$bindir"; then
Linia 19: Linia 18:
     fi
     fi
  fi
  fi
'''Explicație:'''
- Dacă directorul ''$bindir'' nu există, comanda ''mkdir'' încearcă să-l creeze.<br>
- Dacă comanda ''mkdir'' reușește, se afișează mesajul de succes.<br>
- Dacă comanda ''mkdir'' eșuează, se afișează un mesaj de eroare și scriptul iese cu codul de eroare 1.<br>
'''Utilizarea ramurii ''elif'' '''
''Elif'' este o altă ramură condițională care permite evaluarea de condiții alternative în cazul în care condiția inițială nu este îndeplinită.
'''Exemplu de utilizare ''elif'' '''
if <nowiki>[[ $count_1 -gt $count_2 ]]</nowiki>; then
    echo "${dir1} are cele mai multe fișiere."
elif [[ $count_1 -eq $count_2 ]]; then
    echo "Numărul de fișiere este egal în ambele directoare."
else
    echo "${dir2} are cele mai multe fișiere."
fi
'''Explicație:'''
- Verificăm întâi dacă ''$count_1'' este mai mare decât ''$count_2'' și, dacă este adevărat, afișăm un mesaj corespunzător.<br>
- Dacă ''$count_1'' și ''$count_2'' sunt egale, se afișează un mesaj indicând egalitatea numărului de fișiere.<br>
- În caz contrar, se afișează că ''$dir2'' are cele mai multe fișiere.<br>
Aceste structuri condiționale oferă o modalitate flexibilă de a gestiona scenarii complexe în scripturi shell.
== If multiplu ==
#!/bin/bash
#
ora=15
if <nowiki>[[ "$ora" -lt 12 ]]</nowiki>; then
    echo "Bună dimineața!"
elif <nowiki>[[ "$ora" -lt 18 ]]</nowiki>; then
    echo "Bună ziua!"
elif <nowiki>[[ "$ora" -lt 21 ]]</nowiki>; then
    echo "Bună seara!"
else
    echo "Noapte bună!"
fi


[[Bash_Pagina_27|Pagina anterioară]] | [[Bash_Pagina_29|Următoarea pagină]]
[[Bash_Pagina_27|Pagina anterioară]] | [[Bash_Pagina_29|Următoarea pagină]]

Versiunea curentă din 27 octombrie 2024 09:19

If din nou

Instrucțiunile condiționale de tip if sunt esențiale pentru controlul execuției în scripturile shell și permit verificarea unor condiții complexe prin structuri imbricate și ramuri alternative.

Structuri if imbricate

- O structură de tip if poate fi inclusă într-o altă structură if pentru a verifica mai multe condiții în mod succesiv.

Exemplu de structură if imbricată

if [[ ! -d "$bindir" ]]; then
   # Dacă directorul $bindir nu există, încearcă să-l creezi
   if mkdir "$bindir"; then
       echo "Directorul ${bindir} a fost creat."
   else
       echo "Nu s-a putut crea directorul ${bindir}."
       exit 1
   fi
fi

Explicație:

- Dacă directorul $bindir nu există, comanda mkdir încearcă să-l creeze.
- Dacă comanda mkdir reușește, se afișează mesajul de succes.
- Dacă comanda mkdir eșuează, se afișează un mesaj de eroare și scriptul iese cu codul de eroare 1.

Utilizarea ramurii elif

Elif este o altă ramură condițională care permite evaluarea de condiții alternative în cazul în care condiția inițială nu este îndeplinită.

Exemplu de utilizare elif

if [[ $count_1 -gt $count_2 ]]; then
   echo "${dir1} are cele mai multe fișiere."
elif $count_1 -eq $count_2 ; then
   echo "Numărul de fișiere este egal în ambele directoare."
else
   echo "${dir2} are cele mai multe fișiere."
fi

Explicație:

- Verificăm întâi dacă $count_1 este mai mare decât $count_2 și, dacă este adevărat, afișăm un mesaj corespunzător.
- Dacă $count_1 și $count_2 sunt egale, se afișează un mesaj indicând egalitatea numărului de fișiere.
- În caz contrar, se afișează că $dir2 are cele mai multe fișiere.

Aceste structuri condiționale oferă o modalitate flexibilă de a gestiona scenarii complexe în scripturi shell.

If multiplu

#!/bin/bash
# 
ora=15
if [[ "$ora" -lt 12 ]]; then
   echo "Bună dimineața!"
elif [[ "$ora" -lt 18 ]]; then
   echo "Bună ziua!"
elif [[ "$ora" -lt 21 ]]; then
   echo "Bună seara!"
else
   echo "Noapte bună!"
fi


Pagina anterioară | Următoarea pagină