$_
StemLegacy
Phase 2Maîtriser bash

#8 Variables et scripts bash

$VAR, export, boucles

Les variables d'environnement

Le système maintient des variables d'environnement qui contiennent des informations utiles. On y accède avec le préfixe $ :

Variables système
$ echo $HOME
/home/user

$ echo $USER
user

Quelques variables courantes : $HOME (dossier personnel), $USER (nom d'utilisateur), $PATH (chemins des exécutables), $PWD (dossier courant).

Déclarer ses propres variables

On crée une variable en utilisant le format NOM=valeur. Attention : pas d'espace autour du = !

Créer et utiliser une variable
$ NOM="Alice"
$ echo $NOM
Alice

$ FICHIER="rapport.txt"
$ cat $FICHIER

Les variables créées ainsi ne sont visibles que dans le shell courant.

export -- Partager les variables

Par défaut, une variable n'est pas transmise aux processus enfants (scripts, sous-shells). Pour la rendre disponible partout, on utilise export :

Exporter une variable
$ export MA_VAR="test"
$ echo $MA_VAR
test

# MA_VAR est maintenant accessible dans les scripts lancés depuis ce shell

Créer un script bash

Un script bash est un fichier texte contenant une suite de commandes. La première ligne doit être le shebang #!/bin/bash qui indique quel interpréteur utiliser :

Exemple : script.sh
#!/bin/bash

# Boucle for
for PRENOM in Alice Bob Charlie; do
  echo "Bonjour $PRENOM !"
done

On exécute le script avec bash script.sh ou, après l'avoir rendu exécutable avec chmod +x, directement avec ./script.sh :

Lancer un script
$ bash script.sh
Bonjour Alice !
Bonjour Bob !
Bonjour Charlie !

Boucle for et condition if

La boucle for permet de répéter des commandes pour chaque élément d'une liste :

Boucle for
for FICHIER in *.txt; do
  echo "Traitement de $FICHIER"
done

La structure if permet d'exécuter du code selon une condition :

Condition if
if [ -f "notes.txt" ]; then
  echo "Le fichier existe"
else
  echo "Fichier introuvable"
fi

Calculs arithmétiques

Bash permet de faire des calculs avec la syntaxe $(( )) :

Calculs
$ echo $((2 + 3))
5

$ echo $((10 * 4))
40

Récapitulatif

Résumé
NOM="valeur"         # Déclarer une variable
echo $NOM            # Utiliser une variable
export NOM="valeur"  # Exporter pour les sous-processus
bash script.sh       # Exécuter un script
./script.sh          # Exécuter (si chmod +x)
echo $((2 + 3))      # Calcul arithmétique

À vous de jouer

Essayez de créer des variables, d'utiliser export et de lancer bash script.sh dans le terminal ci-dessous.

terminal — bash
user@stemlegacy:~$