Introduction aux scripts bash : syntaxe, variables, commandes
1. Qu'est-ce que les scripts bash ?
Si tu t'es déjà demandé : "Pourquoi dois-je répéter les mêmes commandes encore et encore ?", alors bravo, tu es prêt pour les scripts bash ! Les scripts bash sont une manière d'automatiser le travail sous Linux en écrivant une séquence de commandes dans un seul fichier. Bash (Bourne Again Shell) n'est pas juste un shell, c'est un couteau suisse pour les admins, les devs, et tous ceux qui veulent que le système bosse pour eux.
Avantages des scripts bash
- Gain de temps : Écris une fois — exécute huit fois.
- Répétabilité des tâches : Les scripts s'exécutent de la même manière à chaque fois (enfin, si tu as bien tout écrit).
- Automatisation des routines : Crée des commandes personnalisées pour les sauvegardes, la surveillance des ressources ou la gestion des fichiers.
2. Les bases de création de scripts
Alors, allons-y. Un script Bash, c'est juste un fichier texte avec une liste de commandes. Mais pour que Linux comprenne que c'est un script et pas des notes aléatoires de ton journal intime, il faut respecter certaines règles.
Étape 1 : Nom et format de fichier
Les scripts Bash ont généralement une extension .sh
(mais ce n'est pas obligatoire). Par exemple :
hello_world.sh
backup_script.sh
Étape 2 : En-tête obligatoire
Chaque script bash commence par la ligne :
#!/bin/bash
Cette ligne s'appelle le shebang et indique au système qu'il doit utiliser l'interpréteur /bin/bash
pour exécuter le script. Sans ça, le système va juste regarder ton script, soupirer tristement et ne rien faire.
Étape 3 : Script basique
Crea un script simple qui affiche du texte "Salut, monde !" sur l'écran. Après tout, pourquoi pas ?
Créer un fichier :
nano hello_world.sh
Ajouter les lignes :
#!/bin/bash echo "Salut, monde !"
Rendre le fichier exécutable :
chmod +x hello_world.sh
Lancer le script :
./hello_world.sh
Sur l'écran, tu verras :
Salut, monde !
3. Travailler avec des variables
Les variables sont comme des réservoirs de données dans ton script. Elles rendent les scripts flexibles et pratiques.
Créer des variables
Pour déclarer une variable, utilise le format suivant :
NOM_DE_VARIABLE="valeur"
Exemple :
NAME="Linux"
echo "Bienvenue à $NAME!"
Résultat :
Bienvenue à Linux!
Attention : il est interdit de mettre des espaces entre le nom de la variable et le signe =
. Si tu en mets, bash va penser que tu essaies d'écrire quelque chose de bizarre et cela générera une erreur.
Variables intégrées
Bash propose plusieurs variables prédéfinies, comme :
$USER
— utilisateur actuel.$HOME
— répertoire personnel.$PWD
— répertoire de travail actuel.
Essaie ce script :
#!/bin/bash
echo "Salut, $USER!"
echo "Ton répertoire personnel : $HOME"
echo "Tu travailles ici en ce moment : $PWD"
4. Obtenir des données de l'utilisateur
Parfois, un script doit obtenir des données de l'utilisateur pour fonctionner. Pour cela, on utilise la commande read
.
Exemple :
#!/bin/bash
echo "Comment tu t'appelles ?"
read NAME
echo "Salut, $NAME !"
En lançant le script, tu pourras entrer ton nom, et le script te saluera personnellement.
5. Utilisation des commandes dans un script
Bash te permet d'exécuter des commandes comme si tu les tapais dans un terminal.
Par exemple :
#!/bin/bash
echo "Date et heure actuelles :"
date
La commande date
affichera l'heure et la date actuelles, par exemple :
Date et heure actuelles :
Mon Oct 30 12:34:56 UTC 2023
Enregistrer le résultat d'une commande dans une variable
Tu peux enregistrer la sortie d'une commande dans une variable en utilisant $()
. C'est pratique pour le traitement ultérieur des données.
Exemple :
#!/bin/bash
CURRENT_DATE=$(date)
echo "Maintenant : $CURRENT_DATE"
6. Commentaires dans les scripts
Ajoute toujours des commentaires pour pouvoir comprendre ce que tu as écrit dans un mois. Utilise le symbole #
pour les commentaires :
#!/bin/bash
# Ceci est un script de bienvenue
echo "Bienvenue dans le monde de Bash !"
Les commentaires sont ignorés par l'interpréteur et n'affectent pas l'exécution.
7. Exemple
Écrivons maintenant un script qui vérifie si un fichier existe.
Créons un fichier :
nano file_checker.sh
Ajoutons le code :
#!/bin/bash # Demande du nom de fichier echo "Entrez le nom du fichier :" read FILE_NAME # Vérifie si le fichier existe if [ -f "$FILE_NAME" ]; then echo "Le fichier $FILE_NAME existe." else echo "Le fichier $FILE_NAME est introuvable." fi
Rendons le fichier exécutable et lançons-le :
chmod +x file_checker.sh ./file_checker.sh
Exemple de fonctionnement du script :
Entrez le nom du fichier : test.txt Le fichier test.txt existe.
8. Erreurs typiques
Travailler avec des scripts bash, c'est super cool, mais parfois, tu peux te creuser sérieusement la tête. Voici quelques erreurs fréquentes :
Shebang manquant.
Sans la ligne#!/bin/bash
, ton script peut essayer de s'exécuter dans un autre interpréteur, ce qui causera des erreurs.Variables non déclarées.
Si tu fais une faute de frappe dans le nom d'une variable, bash l'interprétera comme vide. Active le mode de vérification stricte avecset -u
au début du script.Espaces autour de
=
.
Évite d'écrire ça :VARIABLE = "valeur"
. Ça génèrera une erreur.Problèmes de permissions.
Si ton script n'a pas la permission d'exécution, ajoute-là avecchmod +x
.
Exercice pratique
Écris un script qui :
- Demande le nom de l'utilisateur.
- Affiche une phrase de bienvenue.
- Montre la date et l'heure actuelles.
Écris un script qui :
- Demande à l'utilisateur un nom de fichier.
- Crée le fichier s'il n'existe pas, ou informe que le fichier est déjà là.
Voilà, tu connais maintenant les bases des scripts bash ! Il ne reste plus qu'à apprendre à ajouter des conditions et des boucles, mais ça, c'est pour la prochaine leçon. Allez, en avant pour automatiser le monde !
GO TO FULL VERSION