Introduction à la programmation en Bash

Eric Sanchis

email sanschis
Historique des versions
Version 0.1 25 mai 2007 (dernières modifications : 03/11/08) E. Sanchis

Résumé

Cette introduction à la programmation en Bash présente les principales constructions syntaxiques de bash utilisées dans l’écriture des programmes shell (scripts shell). L’objectif premier a été de laisser de côté les redondances syntaxiques de ce langage de programmation, la subtilité des mécanismes de l’interpréteur, afin d’insister sur quelques concepts synthétiques tels que la substitution, la redirection ou le filtrage.

Ce cours étant loin d’être parfait [1], j’encourage le lecteur à me faire parvenir ses remarques ou suggestions, ainsi qu’à me signaler toute inexactitude (cf. dermodif).

pdf Version pdf accompagnée d'exercices.


Table des matières

1. Introduction à bash
1.1. Les shells
1.2. Syntaxe d’une commande
1.3. Commandes internes et externes
1.4. Modes d’exécution d’une commande
1.5. Commentaires
1.6. Fichiers shell
2. Substitution de paramètres
2.1. Variables
2.2. Paramètres de position et paramètres spéciaux
2.3. Suppression des ambiguïtés
2.4. Paramètres non définis
2.5. Suppression de variables
3. Substitution de commandes
3.1. Présentation
3.2. Substitutions de commandes et paramètres régionaux
4. Caractères et expressions génériques
4.1. Caractères génériques
4.2. Expressions génériques
5. Redirections élémentaires
5.1. Descripteurs de fichiers
5.2. Redirections élémentaires
5.3. Tubes
6. Groupement de commandes
7. Code de retour
7.1. Paramètre spécial ?
7.2. Code de retour d'un programme shell
7.3. Commande interne exit
7.4. Code de retour d'une suite de commandes
7.5. Résultats et code de retour
7.6. Opérateurs && et || sur les codes de retour
8. Structures de contrôle case et while
8.1. Choix multiple case
8.2. Itération while
9. Chaînes de caractères
9.1. Protection de caractères
9.2. Longueur d'une chaîne de caractères
9.3. Modificateurs de chaînes
9.4. Extraction de sous-chaînes
9.5. Remplacement de sous-chaînes
10. Structures de contrôle for et if
10.1. Itération for
10.2. Choix if
11. Entiers et expressions arithmétiques
11.1. Variables de type entier
11.2. Commande interne ((
11.3. Valeur d'une expression arithmétique
11.4. Opérateurs
11.5. Structure for pour les expressions arithmétiques
11.6. Exemple : les tours de Hanoi
12. Tableaux
12.1. Définition et initialisation d’un tableau
12.2. Valeur d'un élément d'un tableau
12.3. Caractéristiques d'un tableau
12.4. Suppression d'un tableau
13. Alias
13.1. Création d’un alias
13.2. Suppression d’un alias
14. Fonctions shell
14.1. Définition d’une fonction
14.2. Suppression d’une fonction
14.3. Trace des appels aux fonctions 
14.4. Arguments d’une fonction
14.5. Variables locales à une fonction
14.6. Exporter une fonction
14.7. Commande interne return
14.8. Substitution de fonction
14.9. Fonctions récursives
14.10. Appels de fonctions dispersées dans plusieurs fichiers


[1] Les exemples ont pour but d’illustrer les notions traitées. Il n’est donné aucune garantie quant à leur fonctionnement ou leurs effets.