Chapitre 5 / 6
Fonctions et arguments
Les arguments d'un script
Quand on lance un script avec des paramètres, Bash les expose ainsi :
| Variable | Contenu |
|---|---|
$0 | nom du script |
$1, $2… | 1er, 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.