Le scripting Shell est une méthode puissante pour automatiser des tâches sous Linux en utilisant des lignes de commande. Un script est essentiellement un fichier texte contenant des commandes à exécuter dans un Shell (par exemple Bash). Ce cours vous guidera à travers les éléments fondamentaux pour écrire, exécuter, et comprendre des scripts Shell.
1. Qu’est-ce qu’un script ?
Un script est un fichier texte exécutable qui contient une série de commandes. Ces commandes sont lues et exécutées de manière séquentielle, permettant d’automatiser des processus. Un script peut recevoir des arguments et produire des résultats.
2. Comment rédiger un script ?
La rédaction d’un script nécessite quelques étapes clés :
Analyser les besoins : Définir précisément le problème ou la tâche à automatiser.
Traduire la réponse au besoin en pseudo-code : Écrire une description simplifiée du fonctionnement, sans se préoccuper des détails techniques.
Créer l’algorithme : Décrire les différentes étapes sous forme de séquence de tâches.
Écrire le script : Convertir l’algorithme en code.
3. Créer un script
Pour créer un script, il est nécessaire d’ajouter une ligne spéciale en tête de fichier, appelée Shebang : #!/bin/bash
. Cette ligne spécifie que le script sera interprété avec Bash.
Voici un exemple de script simple : #!/bin/bash echo "Hello World"
.
Pour rendre ce script exécutable, il faut utiliser la commande : chmod +x ./script.sh
.
4. Les variables
Une variable en scripting permet de stocker une valeur qui pourra être utilisée ultérieurement. En Bash, les variables sont des chaînes de caractères par défaut, même si elles peuvent contenir des nombres.
Déclaration :
variable="Valeur"
Utilisation : Pour utiliser la valeur d’une variable, on la précède du signe
$
:echo $variable
Les variables peuvent également être exportées pour qu’elles soient accessibles par d’autres processus : export variable
.
5. Enchainements et conditions
Il est possible d’enchaîner des commandes avec des opérateurs logiques :
ET logique (
&&
) : La commande suivante est exécutée uniquement si la précédente réussit.mkdir dossier && touch dossier/fichier
OU logique (
||
) : La commande suivante est exécutée uniquement si la précédente échoue.mkdir dossier || echo "Erreur lors de la création du dossier"
Les conditions peuvent être écrites avec la structure if
: if [ -e fichier ]; then echo "Le fichier existe" else echo "Le fichier n'existe pas" fi
.
6. Boucles
Les boucles permettent de répéter des actions :
Boucle WHILE : Répète tant qu’une condition est vraie.
while [ $var -lt 10 ]; do echo $var var=$((var+1)) done
Boucle FOR : Répète pour chaque élément d’une liste.
for i in 1 2 3; do echo "Numéro : $i" done
7. Fonctions
Les fonctions permettent de regrouper des blocs de commandes réutilisables. ma_fonction() { echo "Ceci est une fonction" } ma_fonction
Il est possible de déclarer des fonctions dans des fichiers séparés et de les utiliser dans plusieurs scripts grâce à la commande source
.
8. Commandes internes au Shell
Certaines commandes sont très souvent utilisées dans les scripts :
echo
: Affiche du texte à l’écran.read
: Lit une entrée utilisateur.exit
: Quitte le script avec un code de retour.
Le scripting Shell est un outil indispensable pour les administrateurs systèmes et les utilisateurs avancés. Grâce aux scripts, il est possible d’automatiser des tâches répétitives, de gérer des configurations complexes et de simplifier l’administration des systèmes Linux.