Les scripts Bash constituent une méthode largement répandue et accessible pour programmer votre système Linux. Ces exemples simples de scripts vous aideront à saisir le fonctionnement et vous familiariseront avec les fondamentaux de la programmation en Bash.
1. Afficher « Bonjour le monde » en Bash
L’exemple « Bonjour le monde » est un excellent moyen de découvrir un langage de programmation, et Bash ne déroge pas à cette règle.
Voici comment afficher « Bonjour le monde » en utilisant Bash :
#!/bin/bash
La directive Shebang (#!/bin/bash) est primordiale car elle indique au shell comment exécuter le script. Ici, elle spécifie l’interpréteur Bash.
# Ceci est un commentaire d'exemple
echo "Bonjour le monde"
chmod +x hello_world.sh
./hello_world.sh
2. Créer un répertoire en saisissant une donnée
Vos scripts peuvent exécuter n’importe quel programme que vous pourriez normalement lancer en ligne de commande. Par exemple, vous pouvez créer un nouveau répertoire depuis votre script à l’aide de la commande `mkdir`.
#!/bin/bash
echo "Saisissez le nom du nouveau répertoire :"
read nouveau_repertoire
mkdir $nouveau_repertoire
3. Créer un répertoire en utilisant des arguments de ligne de commande
Plutôt que de récupérer les saisies de manière interactive, la plupart des commandes Linux acceptent des arguments. Vous pouvez fournir un argument lors de l’exécution d’un programme pour modifier son comportement.
Dans votre script, vous pouvez utiliser `$1` pour faire référence à une variable spéciale contenant la valeur du premier argument. `$2` fera référence au deuxième argument, et ainsi de suite.
#!/bin/bash
mkdir $1
./creer_repertoire.sh Test
Vous vous demandez peut-être ce qu’il se passe si vous exécutez le script sans fournir aucun argument. Essayez, et vous devriez recevoir un message d’erreur commençant par « usage : mkdir » :
Sans argument de ligne de commande, la valeur de `$1` sera vide. Lorsque votre script appelle `mkdir`, il ne lui transmettra pas d’argument, et la commande `mkdir` générera cette erreur. Pour éviter cela, vous pouvez vérifier la condition vous-même et afficher un message d’erreur plus convivial :
#!/bin/bash
if [ -z "$1" ]; then
echo "Veuillez fournir un nom de répertoire en tant que premier argument"
exit
fi
mkdir "$1"
Lorsque vous lancerez cette nouvelle version du script, vous recevrez un message si vous oubliez de fournir un argument :
4. Supprimer un fichier à l’aide d’une fonction Bash
Si vous répétez le même code, envisagez de l’encapsuler dans une fonction. Vous pourrez ensuite appeler cette fonction lorsque vous en aurez besoin.
Voici un exemple de fonction qui supprime un fichier donné.
#!/bin/bash
supprimer_fichier() {
echo "Suppression de $1"
rm "$1"
}
Vous pouvez ensuite appeler la fonction et lui transmettre le nom d’un fichier à supprimer :
supprimer_fichier test.txt
Lorsqu’une fonction est appelée, elle met à jour la variable spéciale `$?` avec le code de retour de la dernière commande exécutée. Le code de retour est utile pour la gestion des erreurs ; dans cet exemple, vous pouvez vérifier si la commande `rm` a réussi :
if [ $? -ne 0 ]; then
echo "Désolé, la suppression du fichier a échoué"
fi
5. Créer une calculatrice basique pour les calculs arithmétiques
Ce dernier exemple illustre une calculatrice très simple. Lorsque vous l’exécuterez, vous saisirez deux valeurs, puis vous choisirez une opération arithmétique à effectuer sur ces valeurs.
Voici le code du script calc.sh :
#!/bin/bashecho "Saisissez le premier nombre: " read a
echo "Saisissez le deuxième nombre: " read b
echo "Choisissez l'opération arithmétique :" echo "1. Addition" echo "2. Soustraction" echo "3. Multiplication" echo "4. Division" read choix
case $choix in 1) resultat=`echo "$a + $b" | bc` ;;
2) resultat=`echo "$a - $b" | bc` ;;
3) resultat=`echo "$a * $b" | bc` ;;
4) resultat=`echo "scale=2; $a / $b" | bc` ;; esac
echo "Résultat: $resultat"
Notez l’utilisation de `case … esac`, qui est l’équivalent en Bash de l’instruction `switch` dans d’autres langages. Elle vous permet de tester une valeur (ici, la variable `choix`) par rapport à plusieurs valeurs fixes, et d’exécuter le code correspondant.
Ce script utilise la commande `bc` pour effectuer chaque calcul.