Comprendre les bases du scripting Bash : du shebang aux variables
Comprendre les bases du scripting Bash : du shebang aux variables

Introduction

Bonjour à tous ! Aujourd’hui, on va plonger dans les fondamentaux du scripting Bash.
Tu as sĂ»rement dĂ©jĂ  tapĂ© quelques commandes dans ton terminal, mais Ă©crire un script Bash, c’est une autre histoire : il faut comprendre la structure, les variables, et un peu de logique.

Dans ce projet, on va explorer toutes les formes de variables Bash — simples, d’environnement, positionnelles, spĂ©ciales, et prĂ©dĂ©finies — sans oublier deux piliers essentiels : le shebang et les commentaires.
On terminera par des cas pratiques avec set et shift, deux commandes souvent sous-estimées mais indispensables à tout bon script.


đŸ§© Le Shebang (#!) : la premiĂšre ligne de tout script Bash

Le shebang (ou “hashbang”) est cette mystĂ©rieuse ligne tout en haut du script :

#!/bin/bash

Elle indique au systÚme quel interpréteur doit exécuter ton script.
Sans elle, ton script risque d’ĂȘtre interprĂ©tĂ© avec un shell diffĂ©rent (ex : sh, dash, zsh), ce qui peut casser certaines syntaxes.

Variantes courantes

  • #!/bin/bash → classique, appelle directement Bash.
  • #!/usr/bin/env bash → plus portable, cherche Bash dans le PATH.
  • #!/bin/sh → plus minimaliste, compatible avec le shell POSIX.

Exemple pratique

#!/usr/bin/env bash
echo "Script exécuté avec Bash !"

Enregistre le fichier mon_script.sh, rends-le exécutable (chmod +x mon_script.sh) et exécute-le directement :

./mon_script.sh

💡 Astuce : un script sans shebang peut encore ĂȘtre lancĂ© via bash mon_script.sh, mais ce n’est pas recommandĂ© pour des scripts systĂšme ou d’automatisation.


💬 Les commentaires en Bash

Les commentaires servent Ă  documenter ton code pour toi (dans 6 mois) et pour les autres.
Ils commencent toujours par le caractĂšre #.

# Ceci est un commentaire
echo "Hello World" # Ceci aussi est un commentaire

Blocs de commentaires simulés

Bash ne possĂšde pas de vrai bloc multi-ligne, mais on peut simuler :

: <<'COMMENTAIRE'
Tout ce bloc sera ignoré
par Bash Ă  l’exĂ©cution
COMMENTAIRE

Exemple de header standard

#!/usr/bin/env bash
# ========================================================
# Script Name : backup_home.sh
# Description : Sauvegarde du dossier personnel
# Author      : Admin
# Version     : 1.0
# ========================================================

✹ Bonne pratique : documente toujours l’objectif du script et les arguments attendus.


⚙ Les variables en Bash : comprendre toutes les familles

1ïžâƒŁ Variables simples (dĂ©finies par l’utilisateur)

Elles se déclarent sans espaces autour du signe = :

NOM="Alice"
echo "Bonjour $NOM"

Sans guillemets, les espaces sont un cauchemar :

PRENOM=Jean
NOM_DE_FAMILLE=Dupont
echo $PRENOM $NOM_DE_FAMILLE

Pour garantir la fiabilité : toujours utiliser "${VAR}".
Les variables existent uniquement dans le shell courant, sauf si on les exporte :

export NOM

💡 Cela permet à des sous-processus (autres scripts ou programmes) de lire la variable.


2ïžâƒŁ Variables d’environnement

Elles sont fournies par le systĂšme et visibles via env ou printenv.
Elles influencent le comportement global du shell.

VariableDescription
$PATHListe des rĂ©pertoires oĂč Bash cherche les exĂ©cutables
$HOMERĂ©pertoire personnel de l’utilisateur
$USERNom de l’utilisateur courant
$PWDRépertoire actuel
$SHELLInterpréteur par défaut
$LANGLangue du systĂšme

Exemple

echo "Votre répertoire personnel est : $HOME"
export PATH=$PATH:/opt/scripts

🔧 Modifier le PATH permet d’ajouter de nouveaux chemins oĂč Bash cherchera tes scripts.


3ïžâƒŁ Variables positionnelles

Elles représentent les arguments passés au script.

VariableRĂŽle
$0Nom du script
$1, $2Premier, deuxiĂšme, etc. argument
$#Nombre total d’arguments
$@ ou $*Liste de tous les arguments

Exemple

Comprendre les bases du scripting Bash : du shebang aux variables

#!/usr/bin/env bash
echo "Nom du script : $0"
echo "Premier argument : $1"
echo "Nombre d'arguments : $#"

Exécution :

./test.sh fichier1.txt fichier2.txt

Utilisation de shift

La commande shift décale les arguments :

#!/usr/bin/env bash
while [ $# -gt 0 ]; do
    echo "Argument : $1"
    shift
done

🧠 Trùs pratique pour lire les arguments un par un sans te soucier du nombre.


4ïžâƒŁ Variables spĂ©ciales et prĂ©dĂ©finies

Bash possÚde une série de variables internes trÚs utiles.

VariableSignification
$$PID du script (Process ID)
$?Code de retour de la derniĂšre commande
$!PID du dernier processus lancé en arriÚre-plan
$_DerniÚre variable utilisée
$-Options actuellement activées dans le shell

Exemple

#!/usr/bin/env bash
echo "PID du script : $$"
ls /non_existant
echo "Code de retour : $?"

💡 $? te permet de savoir si une commande a rĂ©ussi (0 = succĂšs, >0 = erreur).


5ïžâƒŁ Variables internes et options de set

La commande set te permet de modifier le comportement du shell.
Voici les plus utiles :

OptionEffet
set -xMode debug : affiche chaque commande exécutée
set -eQuitte le script si une commande échoue
set -uErreur si une variable non définie est utilisée
set -o pipefailDétecte les erreurs dans un pipeline

Exemple

#!/usr/bin/env bash
set -euo pipefail
echo "Script robuste et sécurisé !"

đŸ§± Active ces options dĂšs le dĂ©but de ton script pour Ă©viter les comportements imprĂ©visibles.


🧠 Exercices pratiques

Exercice 1

Crée un script nommé intro_bash.sh :

  • avec un shebang,
  • une variable $USER,
  • et un commentaire expliquant ce qu’il fait.
    Objectif : afficher “Bonjour $USER”.

Exercice 2

Écris un script args.sh :

  • qui prend 3 arguments,
  • affiche chaque argument avec sa position.

Exemple de sortie :

Argument 1 : fichier1.txt
Argument 2 : fichier2.txt
Argument 3 : fichier3.txt

Exercice 3

Crée un script shift_demo.sh :

  • lit tous les arguments passĂ©s au script,
  • les affiche un par un grĂące Ă  shift.

Exercice 4

Écris un script info_sys.sh :

  • affiche le PID du script,
  • le nom de l’utilisateur,
  • et le code retour de la derniĂšre commande.

💬 Retour d’expĂ©rience du lecteur

Et vous, comment utilisez-vous les variables dans vos scripts ?
Partagez vos astuces ou vos erreurs mémorables en commentaire, ça aide toute la communauté à progresser !


🧭 Conclusion

On a couvert les bases vitales du scripting Bash : le shebang, les commentaires, et toutes les catĂ©gories de variables — du $0 au $?, en passant par PATH et set -e.
Ces concepts sont la fondation de tout script robuste.

Prochaine étape : les opérateurs et structures de contrÎle (if, while, for), pour automatiser des tùches plus complexes.

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

    Alors tu en pense quoi de cette article ? Dis-moi tous..