Bash Pagina 28: Diferență între versiuni
Admin (discuție | contribuții) |
Admin (discuție | contribuții) |
||
(Nu s-au afișat 6 versiuni intermediare efectuate de același utilizator) | |||
Linia 8: | Linia 8: | ||
'''Exemplu de structură ''if'' imbricată''' | '''Exemplu de structură ''if'' imbricată''' | ||
if <nowiki>[[ ! -d "$bindir" ]]</nowiki>; then | if <nowiki>[[ ! -d "$bindir" ]]</nowiki>; 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