Bash variable

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.