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