Chapitre 6.1 - Introduction au Scripting Shell
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre ce qu'est un script shell
- Créer votre premier script Bash
- Comprendre le shebang
- Rendre un script exécutable
- Utiliser les variables de base
Qu'est-ce qu'un Script Shell?
Un script shell est un fichier contenant une série de commandes shell qui sont exécutées séquentiellement. C'est un moyen puissant d'automatiser des tâches.
Avantages:
- Automatisation de tâches répétitives
- Combinaison de commandes complexes
- Réutilisabilité
- Planification avec cron
Premier Script
Créer un Script
#!/bin/bash
# Mon premier script
echo "Bonjour Linux!"
echo "Date: $(date)"
echo "Utilisateur: $(whoami)"
Étapes:
- Créer le fichier:
nano mon_script.sh - Ajouter le contenu ci-dessus
- Rendre exécutable:
chmod +x mon_script.sh - Exécuter:
./mon_script.sh
Shebang
La première ligne #!/bin/bash est le shebang:
- Indique quel interpréteur utiliser
- Nécessaire pour exécution directe
- Alternatives:
#!/bin/sh,#!/usr/bin/env bash
Variables
Déclaration
#!/bin/bash
# Variables simples
NOM="Linux"
VERSION=6.1
ACTIF=true
# Utilisation
echo "Nom: $NOM"
echo "Version: $VERSION"
echo "Actif: $ACTIF"
Règles:
- Pas d'espaces autour du
= - Guillemets pour chaînes avec espaces
$pour utiliser la variable
Variables d'Environnement
#!/bin/bash
# Variables système
echo "Home: $HOME"
echo "User: $USER"
echo "Path: $PATH"
echo "PWD: $PWD"
Variables Spéciales
#!/bin/bash
echo "Nom du script: $0"
echo "Premier argument: $1"
echo "Deuxième argument: $2"
echo "Nombre d'arguments: $#"
echo "Tous les arguments: $@"
echo "Code de retour: $?"
Lecture d'Entrée
read
#!/bin/bash
# Lire une entrée
echo "Entrez votre nom:"
read NOM
echo "Bonjour $NOM!"
# Avec prompt intégré
read -p "Entrez votre âge: " AGE
echo "Vous avez $AGE ans"
# Lecture silencieuse (mot de passe)
read -s -p "Mot de passe: " PASS
echo
Commentaires
#!/bin/bash
# Commentaire sur une ligne
# Commentaire
# sur plusieurs lignes
# Commentaire en fin de ligne
COMMANDE # Explication
Exemple Complet
#!/bin/bash
# Script d'exemple
# Auteur: Votre nom
# Date: $(date +%Y-%m-%d)
# Variables
NOM_SCRIPT="mon_script.sh"
VERSION="1.0"
# Fonction principale
main() {
echo "=== $NOM_SCRIPT v$VERSION ==="
echo "Date: $(date)"
echo "Utilisateur: $USER"
echo "Répertoire: $PWD"
echo "Arguments: $#"
if [ $# -gt 0 ]; then
echo "Premier argument: $1"
fi
}
# Exécution
main "$@"
Exécution
Méthodes
# 1. Exécution directe (nécessite shebang et chmod +x)
./mon_script.sh
# 2. Avec bash explicite
bash mon_script.sh
# 3. Avec sh
sh mon_script.sh
# 4. Sourcer (exécute dans shell actuel)
source mon_script.sh
. mon_script.sh # Raccourci
Bonnes Pratiques
Structure
#!/bin/bash
# 1. Shebang
# 2. Commentaires de header
# 3. Variables globales
# 4. Fonctions
# 5. Code principal
Options Utiles
#!/bin/bash
set -e # Arrêter sur erreur
set -u # Erreur si variable non définie
set -o pipefail # Erreur dans pipeline
# Ou combiner
set -euo pipefail
Résumé
Dans ce chapitre, vous avez appris:
Script shell: Fichier de commandes exécutables
Shebang: #!/bin/bash pour indiquer l'interpréteur
Variables: Déclaration et utilisation avec $
Lecture: read pour entrée utilisateur
Exécution: ./script.sh, bash script.sh, source script.sh
Bonnes pratiques: Structure, set -e, commentaires
Prochaines Étapes
Chapitre 6.2: Variables et Paramètres
Chapitre 6.3: Structures de Contrôle
Chapitre créé le: Décembre 2024