Aller au contenu

🖥️ Bash — Scripts shell

Le Bash (Bourne Again Shell) est le langage de script natif du terminal Linux. Il permet d'automatiser des tâches en enchaînant des commandes.


Votre premier script

Créez un fichier bonjour.sh :

#!/bin/bash
# Mon premier script Bash

echo "Bonjour, $(whoami) !"
echo "Nous sommes le $(date '+%d/%m/%Y')."

Rendez-le exécutable et lancez-le :

chmod +x bonjour.sh
./bonjour.sh

La première ligne #!/bin/bash s'appelle le shebang : elle indique quel interpréteur utiliser.


Variables

nom="Papinou"
age=42

echo "Nom : $nom"
echo "Âge : $age"

Conditions

if [ $age -ge 18 ]; then
    echo "Majeur"
elif [ $age -ge 13 ]; then
    echo "Adolescent"
else
    echo "Enfant"
fi

Opérateurs de comparaison :

Opérateur Signification
-eq Égal
-ne Différent
-gt Supérieur à
-lt Inférieur à
-ge Supérieur ou égal
-le Inférieur ou égal

Boucles

# Boucle for
for i in 1 2 3 4 5; do
    echo "Itération $i"
done

# Boucle while
compteur=0
while [ $compteur -lt 5 ]; do
    echo $compteur
    ((compteur++))
done

Fonctions

saluer() {
    local prenom=$1
    echo "Bonjour, $prenom !"
}

saluer "Papinou"

Exemples pratiques

Sauvegarder un dossier automatiquement

#!/bin/bash
source=~/Documents
destination=/media/disque/sauvegarde
date=$(date '+%Y-%m-%d')

rsync -avh "$source" "$destination/docs_$date"
echo "Sauvegarde terminée : docs_$date"

Renommer des fichiers en masse

#!/bin/bash
# Ajoute la date du jour devant tous les fichiers .txt
for fichier in *.txt; do
    mv "$fichier" "$(date '+%Y%m%d')_$fichier"
done

Automatiser avec cron

cron permet d'exécuter des scripts à intervalles réguliers.

crontab -e    # Éditer les tâches planifiées

Format : minute heure jour_du_mois mois jour_de_semaine commande

# Exécuter sauvegarde.sh tous les jours à 2h du matin
0 2 * * * /home/papinou/scripts/sauvegarde.sh

Ressources