IF-instructies

Introductie tot Bash-scripting

Alex Scriven

Data Scientist

Een basis-IF

Een basis-IF in Bash heeft deze structuur:

if [ CONDITION ]; then

# SOME CODE
else # SOME OTHER CODE
fi

Twee tips:

  • Spaties tussen rechte haken en de elementen binnenin (eerste regel)
  • Puntkomma na de sluitende haak ];
Introductie tot Bash-scripting

IF en strings

We kunnen een eenvoudige stringvergelijking in een IF doen:

x="Queen"

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

Je kunt ook != gebruiken voor 'niet gelijk aan'

Introductie tot Bash-scripting

Rekenkundige IF (optie 1)

Rekenkundige IF's kunnen dubbele haakjes gebruiken:

x=10

if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Introductie tot Bash-scripting

Rekenkundige IF (optie 2)

Rekenkundige IF's kunnen ook vierkante haken en een rekenvlag gebruiken in plaats van (>, <, =, != etc.):

  • -eq voor 'gelijk aan'
  • -ne voor 'niet gelijk aan'
  • -lt voor 'kleiner dan'
  • -le voor 'kleiner of gelijk aan'
  • -gt voor 'groter dan'
  • -ge voor 'groter of gelijk aan'
Introductie tot Bash-scripting

Voorbeeld rekenkundige IF

Hier maken we het laatste voorbeeld opnieuw met vierkante haken:

x=10
if [ $x -gt 5 ]; then
    echo "$x is more than 5!"
fi
10 is more than 5!
Introductie tot Bash-scripting

Andere Bash-voorwaardevlaggen

Bash heeft ook verschillende bestandsflags zoals:

  • -e als het bestand bestaat
  • -s als het bestand bestaat en groter is dan nul
  • -r als het bestand bestaat en leesbaar is
  • -w als het bestand bestaat en beschrijfbaar is

En nog meer:

Introductie tot Bash-scripting

AND en OR in Bash gebruiken

Om voorwaarden te combineren (AND) of OR te gebruiken in Bash, gebruik je:

  • && voor AND
  • || voor OR
Introductie tot Bash-scripting

Meerdere voorwaarden

In Bash kun je conditionals als volgt ketenen:

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

Of dubbele rechte haken gebruiken:

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

IF en commandoregelprogramma's

Je kunt ook veel commandoregelprogramma's direct in de voorwaarde gebruiken, waarbij je de vierkante haken weglaat.

Bijvoorbeeld, als words.txt 'Hello World!' bevat:

if grep -q Hello words.txt; then
    echo "Hello is inside!"
fi
Hello is inside!
Introductie tot Bash-scripting

IF met shell-in-shell

Je kunt ook een shell-in-een-shell aanroepen voor je voorwaarde.

Herschrijven we het vorige voorbeeld; dit geeft hetzelfde resultaat.

if $(grep -q Hello words.txt); then
    echo "Hello is inside!"
fi
Hello is inside!
Introductie tot Bash-scripting

Laten we oefenen!

Introductie tot Bash-scripting

Preparing Video For Download...