Scripts bash

Variables

Définition

Attention : pas d'espace autour du signe = !

Rendre la variable globale : export

Evaluation de la variable $

Suppression de variable unset

Code d'erreur de la dernière commande $?

Chaînes de caractères

Evaluer les variables de la chaîne " ... " (guillemets)

Ne pas évaluer les variables ' ... ' (apostrophes)

Exécuter le contenu : accent grave

Arguments

symboledescription
$#nombre d'arguments reçus par le script
$0nom du script
$nargument reçu en position n (de 1 à 9)
${m}argument reçu en position m (10 et plus)
$* ou $@liste de tous les arguments

Commande read

affectation des variables à partir de l'entrée standard.

L'option -p permet d'afficher un texte avant d'entrer la valeur :

Commande printf

affichage d'un message (plus complète que echo).

Argument -v enregistre le texte dans la variable var au lieu de l'afficher.

Exemple :

Arithmétique

Par défaut, les variables sont de type texte.

variable de type entier : declare -i

La notation ((...)) permet d'évaluer l'expression arithmétique contenant des opérateurs, des variables ($ facultatif, sauf pour arg), des espaces.

Nombre flottants : bc

Conditions

commande if exécute des commandes en fonction d'une condition.

comparaison numérique

opérateurs <op>:

Comparaison de chaînes de caractères

<str2> peut contenir des métacaractères.

opérateurs <op> :

Test de chaîne vide

Opérateurs <op> :

Test sur les fichiers

opérateurs <op> :

Itérations

Commande for

La commande for répète une suite de commandes pour une liste d'éléments (arguments, mots d'une ligne, fichier d'un dossier, variable incrémentée, ...)

Itération sur les mots d'une ligne

<text> : ligne de texte (ou variable) <var> : variable qui contient à chaque itération un mot du texte

Exemple :

Itération sur tous les arguments du script

Itération sur les fichiers du dossier courant

<var> : variable qui contient à chaque itération le nom d'un fichier <filename> : nom de fichier avec métacaractères (p.ex. *.jpg pour itérer sur les fichier images JPG)

Itération sur une variable incrémentée

La syntaxe de <init>, <comp> et <inc> est similaire à celle du langage C.

Exemple :

Commande while

La commande while répète une suite d'instructions tant qu'une certaine condition est vraie.

La condition <cond> peut être :