Instrucțiuni IF

Introducere în Bash Scripting

Alex Scriven

Data Scientist

O instrucțiune IF de bază

O instrucțiune IF de bază în Bash are următoarea structură:

if [ CONDITION ]; then

# SOME CODE
else # SOME OTHER CODE
fi

Două sfaturi:

  • Spații între parantezele pătrate și elementele condiționale din interior (prima linie)
  • Punct și virgulă după paranteza de închidere ];
Introducere în Bash Scripting

Instrucțiunea IF și șiruri

O comparație simplă de șiruri într-o instrucțiune IF:

x="Queen"

if [ $x == "King" ]; then
echo "$x is a King!"
else echo "$x is not a King!" fi
Queen is not a King!

Se poate folosi și != pentru 'diferit de'

Introducere în Bash Scripting

Instrucțiuni IF aritmetice (opțiunea 1)

Instrucțiunile IF aritmetice pot folosi structura cu paranteze duble:

x=10

if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Introducere în Bash Scripting

Instrucțiuni IF aritmetice (opțiunea 2)

Instrucțiunile IF aritmetice pot folosi și paranteze pătrate cu flag-uri aritmetice în loc de (>, <, =, != etc.):

  • -eq pentru 'egal cu'
  • -ne pentru 'diferit de'
  • -lt pentru 'mai mic decât'
  • -le pentru 'mai mic sau egal cu'
  • -gt pentru 'mai mare decât'
  • -ge pentru 'mai mare sau egal cu'
Introducere în Bash Scripting

Exemplu de instrucțiune IF aritmetică

Recreăm ultimul exemplu folosind notația cu paranteze pătrate:

x=10
if [ $x -gt 5 ]; then
    echo "$x is more than 5!"
fi
10 is more than 5!
Introducere în Bash Scripting

Alte flag-uri condiționale Bash

Bash include și diverse flag-uri legate de fișiere:

  • -e dacă fișierul există
  • -s dacă fișierul există și are dimensiunea mai mare decât zero
  • -r dacă fișierul există și este lizibil
  • -w dacă fișierul există și este editabil

Și multe altele:

Introducere în Bash Scripting

AND și OR în Bash

 

Pentru a combina condiții (AND) sau a utiliza OR în Bash, se folosesc simbolurile:

  • && pentru AND
  • || pentru OR
Introducere în Bash Scripting

Condiții multiple

În Bash se pot înlănțui condiții astfel:

x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
    echo "$x is more than 5 and less than 11!"
fi

Sau se poate folosi notația cu paranteze duble:

x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
    echo "$x is more than 5 and less than 11!"
fi
Introducere în Bash Scripting

IF și programe din linia de comandă

Se pot folosi și programe din linia de comandă direct în condiție, eliminând parantezele pătrate.

De exemplu, dacă fișierul words.txt conține 'Hello World!':

if grep -q Hello words.txt; then
    echo "Hello is inside!"
fi
Hello is inside!
Introducere în Bash Scripting

IF cu subshell

Se poate utiliza și un subshell în condiție.

Rescriem exemplul anterior, care produce același rezultat.

if $(grep -q Hello words.txt); then
    echo "Hello is inside!"
fi
Hello is inside!
Introducere în Bash Scripting

Să exersăm!

Introducere în Bash Scripting

Preparing Video For Download...