La commande echo et les séquences d'échappement
La commande echo est fondamentale pour afficher du texte dans un terminal. Par défaut, elle ajoute un saut de ligne à la fin de la sortie.
- Utiliser l'option
-npour supprimer le saut de ligne final. - Utiliser l'option
-epour activer l'interprétation des caractères d'échappement.
Caractères d'échappement courants :
\n: Insère un saut de ligne.\t: Insère une tabulation horizontale.\r: Retour chariot (déplace le curseur au début de la ligne sans saut de ligne).\b: Efface le caractère précédent (backspace).\c: Supprime tout saut de ligne final et arrête l'affichage du reste de la chaîne.\\: Affiche un anitslash littéral.
La boucle for
La boucle for permet d'itérer sur une liste de valeurs ou une plage définie.
Syntaxe de base :
for item in liste_valeurs; do
# commandes
done
Exemples de génération de listes :
for nombre in {1..5}; do echo $nombre; done
for lettre in a b c d; do echo $lettre; done
Exemple pratique : Vérifier la disponibilité de plusieurs serveurs web via HTTP.
#!/bin/bash
# Vérification de l'état de serveurs via HTTP
serveurs=("google.com" "github.com" "invalid-url-test.com")
for hote in "${serveurs[@]}"; do
if curl -s --head --request GET "http://$hote" | grep "200 OK" > /dev/null; then
echo "Le serveur $hote est accessible."
else
echo "Le serveur $hote est inaccessible."
fi
done
La boucle while
La boucle while exécute un bloc de code tant qu'une condition spécifique est évaluée comme vraie.
Syntaxe :
while [ condition ]; do
# commandes
done
Exemple pratique : Jeu de devinette (trouver un nombre entre 1 et 100).
#!/bin/bash
cible=$((RANDOM % 100 + 1))
tentatives=0
trouve=false
echo "Devinez le nombre entre 1 et 100."
while [ "$trouve" = false ]; do
read -p "Votre proposition : " proposition
tentatives=$((tentatives + 1))
if [ "$proposition" -eq "$cible" ]; then
echo "Bravo ! Vous avez trouvé en $tentatives essais."
trouve=true
elif [ "$proposition" -lt "$cible" ]; then
echo "C'est plus grand."
else
echo "C'est plus petit."
fi
done
La boucle until
Contrairement à while, la boucle until continue d'exécuter le bloc de code tant que la condition est fausse. Elle s'arrête dès que la condition devient vraie.
Syntaxe :
until [ condition ]; do
# commandes
done
Exemple pratique : Calcluer la somme des entiers jusqu'à ce que le total dépasse 200.
#!/bin/bash
compteur=1
somme=0
until [ "$somme" -gt 200 ]; do
somme=$((somme + compteur))
compteur=$((compteur + 1))
done
echo "La somme a dépassé 200. Valeur finale : $somme (atteinte après $((compteur - 1)) itérations)."