Traitement des variables du Bash
Pour assigner une variable :
variable=coucou
** Attention ne pas mettre d’espace autour du = **
Pour avoir le contenu d’une variable :
$variable
Pour récupérer les variables de la ligne de commande :
- $0 Nom de la commande
- $# Nombre de paramètre passé sur la ligne
- $n Où n est un nombre de 1 à 9, nième paramètre
- $* Toutes les variables de la ligne
- $$ Numéro de processus de la dernière commande
- $? Status de la dernière commande (0 si tout c’est bien passé)
- Pour avoir la longueur de la variable :
${#variable}
Chaque variable est défini dans un shell, pour la rendre disponible dans d’autres shell il faut l’exporter.
export variable
ou
declare -x variable
Pour mettre une variable en lecture seul il faut utiliser la directive readonly
variable=totom
readonly variable
Les Tableaux
Comme tout les languages, le bash gére les tableaux.
Pour déclarer un tableau
variable=(un deux trois quatre cinq six sept huit neuf)
echo ${variable[3]}
Mais on préféra utiliser des boucles pour lire les tableaux :
tableau=(zero un deux trois quatre cinq six sept huit neuf)
for i in 1 2 3 4 5 6 7 8 9
do
echo $tableau[$i]
done
Il est possible de connaître le nombre d’élément dans un tableau avec
echo ${#tableau[*]}
Découpage des variables
Il est possible de ne prendre qu’une partie d’une variable.
Par exemple pour supprimer les 3 premiers éléments d’une variable.
variable="0123456789"
echo ${variable:3}
** Ne pas oublier que la numérotation commence à zéro **
il est possible de ne prendre qu’un intervalle la syntaxe est de la forme :
${variable:position:longueur}
variable="0123456789"
echo ${variable:3:2}
Cela prendra à partir de la 4ème valeur, 2 valeurs.
Valeur par défaut
Il est possible (et cela devrait être fait en permanence, surtout en cas d’interaction avec l’utilisateur) de définir une valeur par défaut
La forme est ${variable:-valeur par défaut}
echo "entrer une valeur : "
read MAVAR
echo ${MAVAR:-Pas de valeur}
Set
set est une commande qui permet d’affecter des variables avec leurs positions.
Par exemple :
set toto titi tata tutu
echo $1
Va retourner : toto (dans ce cas l’affectation commence à 1 car $0 est déjà pris)
Utilisé seul set permet de visualiser toutes les variables affectées.