Bash de A à Z

Chapitre 5 / 6

Fonctions et arguments

Les arguments d'un script

Quand on lance un script avec des paramètres, Bash les expose ainsi :

VariableContenu
$0nom du script
$1, $21er, 2e argument
$@tous les arguments
$#nombre d'arguments
#!/bin/bash
# usage : ./sauvegarde.sh /data
if [ "$#" -lt 1 ]; then
  echo "Usage : $0 <dossier>"
  exit 1
fi
echo "Sauvegarde de $1…"

💡 Vérifier $# en début de script et afficher un message d'usage est un réflexe pro : le script devient clair et robuste.

Définir une fonction

Une fonction regroupe des commandes réutilisables. Elle reçoit ses propres arguments via $1, $2… :

log() {
  echo "[$(date +%T)] $1"
}

log "Démarrage du script"
log "Traitement terminé"

Le code de retour

Chaque commande (et fonction) renvoie un code : 0 = succès, ≠ 0 = erreur. On le lit avec $?, et on le fixe avec return (fonction) ou exit (script).

verifier_fichier() {
  if [ -f "$1" ]; then
    return 0        # succès
  else
    return 1        # échec
  fi
}

if verifier_fichier "/etc/hosts"; then
  echo "Fichier présent"
fi

Variables locales

Par défaut, les variables sont globales. Dans une fonction, préfixe-les de local pour éviter les effets de bord :

compter() {
  local total=$(ls "$1" | wc -l)
  echo "$total fichiers"
}

Dernier chapitre : on assemble tout ça dans un script d'administration complet.