Bash Pagina 28
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 # Exemplu variabile 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