Objectifs
- Comprendre ce qu’est un script shell et son utilité pour l’automatisation.
- Écrire la ligne “shebang” (
#!/bin/bash) et comprendre son rôle. - Rendre un script exécutable avec
chmod +x. - Utiliser des variables et la commande
echopour créer un script simple.
Qu’est-ce qu’un script Bash ?
Un script est un simple fichier texte qui contient une séquence de commandes, exactement les mêmes que celles que vous tapez dans votre terminal. Au lieu de les taper une par une, vous les écrivez dans un fichier, et le shell les exécute dans l’ordre.
C’est le premier pas vers l’automatisation. Dès que vous vous retrouvez à taper la même série de 3 ou 4 commandes régulièrement, c’est le signe qu’il est temps d’en faire un script.
Anatomie d’un premier script
Un script Bash a quelques éléments caractéristiques.
Fichier mon_script.sh :
#!/usr/bin/env bash
# Ceci est un commentaire. Il est ignoré par le shell.
# On utilise des commentaires pour expliquer le "pourquoi" du code.
# Afficher un message de bienvenue
echo "--- Début de mon premier script ---"
# Définir une variable
UTILISATEUR="Alice"
# Utiliser la variable dans une chaîne de caractères
echo "Bonjour, $UTILISATEUR !"
# Exécuter une autre commande
echo "Le contenu du dossier courant est :"
ls -l
echo "--- Fin du script ---"
Le Shebang : #!/usr/bin/env bash
C’est la toute première ligne de votre script.
- Elle commence toujours par
#!. - Elle indique au système d’exploitation quel programme (interpréteur) utiliser pour exécuter ce fichier.
#!/bin/bashdit “utilise le programmebashqui se trouve dans/bin”.#!/usr/bin/env bashest souvent préféré : il dit “trouve le programmebashdans l’environnement de l’utilisateur”, ce qui est un peu plus portable. Cette ligne est cruciale.
Rendre le script exécutable et le lancer
1. La permission d’exécution
Par défaut, un nouveau fichier texte que vous créez n’a pas la permission d’être exécuté. Vous devez l’ajouter manuellement avec chmod.
# Ajoute (+) la permission d'exécution (x)
chmod +x mon_script.sh
Vous ne devez faire cette opération qu’une seule fois.
2. L’exécution
Pour lancer le script, vous devez spécifier son chemin. Si vous êtes dans le même dossier que le script, le chemin est ./mon_script.sh.
./mon_script.sh
- Le
./est important. Il signifie “dans le dossier courant”. Sans lui, le shell chercherait la commandemon_script.shdans les dossiers système (/bin,/usr/bin, etc.) et ne la trouverait pas.
Bonnes pratiques dès le début
- Toujours inclure un shebang en haut de vos scripts.
- Utilisez l’extension
.shpour vos scripts shell. Ce n’est pas obligatoire pour le système, mais c’est une convention qui aide les humains à identifier le type de fichier. - Commentez votre code pour expliquer les parties complexes ou les choix que vous avez faits.
- Utilisez
set -e: Ajoutezset -ejuste après le shebang. Cette option demande au script de s’arrêter immédiatement si une commande échoue, ce qui évite des comportements imprévisibles.
Exercices
-
Votre premier script :
- Créez un fichier nommé
system_info.sh. - Ajoutez le shebang.
- À l’intérieur, ajoutez les commandes pour afficher :
- Un message ”--- Informations Système ---”.
- Le nom de votre machine (
hostname). - La version de votre noyau (
uname -r).
- Rendez le script exécutable et lancez-le.
- Créez un fichier nommé
-
Script avec variables :
- Créez un script
backup_notice.sh. - Définissez une variable
BACKUP_DIRavec le chemin/mnt/backups/daily. - Définissez une variable
DATE_JOURqui exécute la commandedate. - Le script doit afficher un message comme : “NOTICE: La sauvegarde du [date] sera stockée dans [dossier]”.
- Créez un script
-
Erreur de permission :
- Créez un fichier
test.shsans le rendre exécutable. - Essayez de le lancer avec
./test.sh. Observez l’erreur “Permission denied”. - Corrigez le problème avec
chmod.
- Créez un fichier