Guide avancé d'écriture des scripts Bash

Une exploration en profondeur de l'art de la programmation shell

6.0.21


07 May 2009

Historique des versions
Version 5.523 novembre 2008mc
Version 'FARKLEBERRY' : Mise à jour mineure.
Version 5.626 janvier 2009mc
Version 'WORCESTERBERRY' : Mise à jour mineure.
Version 6.023 mars 2009ml
Version 'THIMBLEBERRY' : Mise à jour importante.
Version 6.0fr19 juin 2009ob
Mise à jour de la traduction française.
Résumé

Ce tutoriel ne suppose aucune connaissance de la programmation de scripts, mais permet une progression rapide vers un niveau intermédiaire/avancé d'instruction tout en se plongeant dans de petites pépites du royaume d'UNIX®. Il est utile comme livre, comme manuel permettant d'étudier seul, et comme référence et source de connaissance sur les techniques de programmation de scripts. Les exercices et les exemples grandement commentés invitent à une participation active du lecteur avec en tête l'idée que la seule façon pour vraiment apprendre la programmation de scripts est d'écrire des scripts.

Ce livre est adapté à une utilisation en classe en tant qu'introduction générale aux concepts de la programmation.


Dédicace

Pour Anita, la source de toute magie

Part 1. Introduction
1. Pourquoi programmer en Shell ?
2. Lancement avec un « #! »
2.1. Appeler le script
2.2. Exercices préliminaires
Part 2. Bases
3. Caractères spéciaux
4. Introduction aux variables et aux paramètres
4.1. Substitution de variable
4.2. Affectation de variable
4.3. Les variables Bash ne sont pas typées
4.4. Types de variables spéciales
5. Guillemets et apostrophes
5.1. Placer les variables entre guillemets
5.2. Échappement
6. Sortie et code de sortie (ou d'état)
7. Tests
7.1. Contrôles de test
7.2. Opérateurs de test de fichiers
7.3. Autres opérateurs de comparaison
7.4. Tests if/then imbriqués
7.5. Tester votre connaissance des tests
8. Opérations et sujets en relation
8.1. Opérateurs
8.2. Constantes numériques
Part 3. Après l'approche basique
9. Les variables revisitées
9.1. Les variables internes
9.2. Manipuler les chaînes de caractères
9.2.1. Manipuler des chaînes de caractères avec awk
9.2.2. Pour en savoir plus
9.3. Substitution de paramètres
9.4. Typer des variables : declare ou typeset
9.4.1. Another use for declare
9.5. Références indirectes
9.6. $RANDOM : générer un nombre aléatoire
9.7. Les expressions entre doubles parenthèses
10. Boucles et branchements
10.1. Boucles
10.2. Boucles imbriquées
10.3. Contrôle des boucles
10.4. Tests et branchements
11. Substitution de commandes
12. Expansion arithmétique
13. Récréation
4ème Partie. Commandes
14. Commandes internes et intégrées
14.1. Commandes de contrôle des jobs
15. Filtres externes, programmes et commandes
15.1. Commandes de base
15.2. Commandes complexes
15.3. Commandes de date et d'heure
15.4. Commandes d'analyse de texte
15.5. Commandes pour les fichiers et l'archivage
15.6. Commandes de communications
15.7. Commandes de contrôle du terminal
15.8. Commandes mathématiques
15.9. Commandes diverses
16. Commandes système et d'administration
16.1. Analyser un script système
5ème Partie. Thèmes avancés
17. Expressions rationnelles
17.1. Une brève introduction aux expressions rationnelles
17.2. Remplacement
18. Documents intégrés
18.1. Chaînes en ligne
19. Redirection d'E/S (entrées/sorties)
19.1. Utiliser exec
19.2. Rediriger les blocs de code
19.3. Applications
20. Sous-shells
21. Shells restreints
22. Substitution de processus
23. Fonctions
23.1. Fonctions complexes et complexité des fonctions
23.2. Variables locales
23.2.1. Variables locales et récursion
23.3. Récursion sans variables locales
24. Alias
25. Constructeurs de listes
26. Tableaux
27. /dev et /proc
27.1. /dev
27.2. /proc
28. Des Zéros et des Nulls
29. Débogage
30. Options
31. Trucs et astuces
32. Écrire des scripts avec style
32.1. Feuille de style non officielle d'écriture de scripts
33. Divers
33.1. Shells et scripts interactifs et non interactifs
33.2. Précédence des opérateurs
33.3. Scripts d'appel
33.4. Tests et comparaisons : alternatives
33.5. Un script s'appelant lui-même (récursion)
33.6. « Coloriser » des scripts
33.7. Optimisations
33.8. Astuces assorties
33.8.1. Idées pour des scripts plus puissants
33.8.2. Widgets
33.9. Problèmes de sécurité
33.9.1. Scripts shell infectés
33.9.2. Cacher le source des scripts shell
33.9.3. Écrire des scripts shell sécurisés
33.10. Problèmes de portabilité
33.11. Scripts sous Windows
34. Bash, versions 2, 3 et 4
34.1. Bash, version 2
34.2. Bash, version 3
34.2.1. Bash, version 3.1
34.2.2. Bash, version 3.2
34.3. Bash, version 4
35. Notes finales
35.1. Note de l'auteur
35.2. À propos de l'auteur
35.3. Où trouver de l'aide
35.4. Outils utilisés pour fabriquer ce livre
35.4.1. Matériel
35.4.2. Logiciel et impression
35.5. Remerciements
35.5.1. Pour la version originale
35.5.2. Pour la version traduite
35.6. Limitation de responsabilité
Bibliographie
A. Contribution de scripts
B. Fiches de référence
C. Petit guide sur Sed et Awk
C.1. Sed
C.2. Awk
D. Codes de sortie ayant une signification particulière
E. Une introduction détaillée sur les redirections d'entrées/sorties
F. Options en ligne de commande
F.1. Options standards en ligne de commande
F.2. Options en ligne de commande de Bash
G. Fichiers importants
H. Répertoires système importants
I. Localisation
J. Commandes d'historique
K. Un exemple de fichier .bashrc
L. Convertir des fichiers batch DOS en scripts shell
M. Exercices
M.1. Analyse de scripts
M.2. Écriture de scripts
N. Historique des révisions
O. Sites de téléchargement, miroirs
P. Liste de choses à faire
Q. Droits d'utilisation
R. Copyright
S. Table ASCII
T. Index
n
Next Page
p
Previos Page
h
Book Home
u
Go Up One Level
?
Press ? for Help
esc
Hide Help
Your Ad Here