Skip to main content

Cheet-sheet

En-tête

#!/bin/bash

Variables

Il existe 2 types de variables en bash :

  • Les variables traditionnelles définies par l'utilisateur. Leur identifiant doit être en minuscule.
  • Les variables d'environnement qui sont définies par le système. Leur identifiant doit être en majuscule.

Définition et affectation de variables

Valeur entière :

myVar=3

Chaîne de caractères :

myVar="Hello world !"

Sortie d'une commande :

myVar=$( echo "test" )

Utilisation des variables

Pour accéder à la valeur stockée dans une variable on utilise le caractère $ :

echo $myVar

Conditions

If

if [ <some test> ]
then
    <commands>
fi

If / Else

if [ <some test> ]
then
    <commands>
else
    <other commands>
fi

 If / Elif / Else

if [ <some test> ]
then
    <commands>
elif [ <some test> ]
then
    <different commands>
else
    <other commands>
fi

Case

case <variable> in
<pattern 1>)
    <commands>
;;
<pattern 2>)
    <other commands>
;;
esac

Tests

Operator Description
! EXPRESSION The EXPRESSION is false.
-n STRING The length of STRING is greater than zero.
-z STRING The lengh of STRING is zero (ie it is empty).
STRING1 = STRING2 STRING1 is equal to STRING2
STRING1 != STRING2 STRING1 is not equal to STRING2
INTEGER1 -eq INTEGER2 INTEGER1 is numerically equal to INTEGER2
INTEGER1 -gt INTEGER2 INTEGER1 is numerically greater than INTEGER2
INTEGER1 -lt INTEGER2 INTEGER1 is numerically less than INTEGER2
-d FILE FILE exists and is a directory.
-e FILE FILE exists.
-r FILE FILE exists and the read permission is granted.
-s FILE FILE exists and it's size is greater than zero (ie. it is not empty).
-w FILE FILE exists and the write permission is granted.
-x FILE FILE exists and the execute permission is granted.

Opérations booléennes

On peut combiner les tests grâce aux opérateurs suivants :

ET
OU
&&
||

Exemple :

if [ -r $1 ] && [ -s $1 ]
then
    echo This file is useful.
fi

Boucles

While

while [ <some test> ]
do
    <commands>
done

For

Pour parcourir une liste, on utilise une boucle for où la variable var sera l'élément sélectionné de la liste à traiter :

for var in <$list>
do
    <commands>
done

 Pour une "range" on fera le type de boucle for suivant :

for value in {1..5}
do
    echo $value
done