Guide avance d_ecriture des scripts Bash.pdf
(
2467 KB
)
Pobierz
Guide avancé d'écriture des scripts Bash
Une exploration en profondeur de l'art de la pro-
grammation shell
Mendel Cooper
Guide avancé d'écriture des scripts Bash: Une exploration en profondeur de
l'art de la programmation shell
Mendel Cooper
5.3
Publié le 11 mai 2008
Résumé
Ce tutoriel ne suppose aucune connaissance de la programmation de scripts, mais permet une progression rapide vers un niveau in-
termédiaire/avancé d'instructions
tout en se plongeant dans de petites astuces 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.
La dernière mise à jour de ce document,
comme une « archive tar » compressée avec bzip2 incluant à la fois le source SGML et le
HTML généré, peut être téléchargée à partir du site personnel de l'auteur. Une
version PDF
est aussi disponible (site
miroir du
PDF).
Voir le
journal des modifications
pour un historique des révisions.
Dédicace
Pour Anita, la source de toute magie
i
Part 1. Introduction .......................................................................................................................................... 1
1. Pourquoi la programmation Shell ? ........................................................................................................... 2
2. Lancement avec un « #! » ........................................................................................................................ 4
2.1. Appeler le script ............................................................................................................................ 7
2.2. Exercices préliminaires .................................................................................................................. 8
Part 2. Bases .................................................................................................................................................. 9
3. Caractères spéciaux ............................................................................................................................... 10
4. Introduction aux variables et aux paramètres .............................................................................................. 28
4.1. Substitution de variable ................................................................................................................. 28
4.2. Affectation de variable .................................................................................................................. 30
4.3. Les variables Bash ne sont pas typées ............................................................................................... 32
4.4. Types spéciaux de variables ........................................................................................................... 33
5. Guillemets et apostrophes ....................................................................................................................... 37
5.1. Placer les variables entre guillemets ................................................................................................. 37
5.2. Échappement ............................................................................................................................... 39
6. Sortie et code de sortie (ou d'état) ............................................................................................................ 44
7. Tests .................................................................................................................................................. 46
7.1. Constructions de tests .................................................................................................................... 46
7.2. Opérateurs de test de fichiers .......................................................................................................... 52
7.3. Autres opérateurs de comparaison ................................................................................................... 55
7.4. Tests if/then imbriqués .................................................................................................................. 59
7.5. Tester votre connaissance des tests .................................................................................................. 60
8. Opérations et sujets en relation ................................................................................................................ 61
8.1. Opérateurs .................................................................................................................................. 61
8.2. Constantes numériques .................................................................................................................. 67
Part 3. Après l'approche basique ........................................................................................................................ 69
9. Les variables revisitées .......................................................................................................................... 70
9.1. Variables internes ......................................................................................................................... 70
9.2. Manipuler les chaînes de caractères ................................................................................................. 87
9.3. Substitution de paramètres ............................................................................................................. 94
9.4. Typer des variables :
declare
ou
typeset
......................................................................................... 102
9.5. Références indirectes .................................................................................................................. 105
9.6. $RANDOM : générer un nombre aléatoire ...................................................................................... 107
9.7. La construction en double parenthèse ............................................................................................. 117
10. Boucles et branchements .................................................................................................................... 119
10.1. Boucles .................................................................................................................................. 119
10.2. Boucles imbriquées ................................................................................................................... 130
10.3. Contrôle de boucles ................................................................................................................... 130
10.4. Tests et branchements ................................................................................................................ 133
11. Substitution de commandes ................................................................................................................. 141
12. Expansion arithmétique ...................................................................................................................... 147
13. Récréation ....................................................................................................................................... 148
Part 4. Commandes ...................................................................................................................................... 149
14. Commandes internes et intégrées .......................................................................................................... 159
14.1. Commandes de contrôle des jobs ................................................................................................. 185
15. Filtres externes, programmes et commandes ........................................................................................... 190
15.1. Commandes de base .................................................................................................................. 190
15.2. Commandes complexes ............................................................................................................. 195
15.3. Commandes de date et d'heure .................................................................................................... 204
15.4. Commandes d'analyse de texte .................................................................................................... 208
15.5. Commandes pour les fichiers et l'archivage .................................................................................... 229
15.6. Commandes de communications .................................................................................................. 245
15.7. Commandes de contrôle du terminal ............................................................................................. 260
15.8. Commandes mathématiques ....................................................................................................... 261
15.9. Commandes diverses ................................................................................................................. 269
16. Commandes système et d'administration ................................................................................................ 282
16.1. Analyser un script système ......................................................................................................... 310
Part 5. Thèmes avancés ................................................................................................................................. 312
17. Expressions rationnelles ..................................................................................................................... 313
17.1. Une brève introduction aux expressions rationnelles ........................................................................ 313
17.2. Remplacement ......................................................................................................................... 316
18. Documents en ligne ........................................................................................................................... 318
ii
Guide avancé d'écriture des scripts Bash
18.1. Chaînes en ligne ....................................................................................................................... 327
19. Redirection d'E/S (entrées/sorties) ........................................................................................................ 330
19.1. Utiliser
exec
............................................................................................................................ 333
19.2. Rediriger les blocs de code ......................................................................................................... 336
19.3. Applications ............................................................................................................................ 340
20. Sous-shells ...................................................................................................................................... 342
21. Shells restreints ................................................................................................................................ 347
22. Substitution de processus .................................................................................................................... 349
23. Fonctions ......................................................................................................................................... 352
23.1. Fonctions complexes et complexité des fonctions ............................................................................ 354
23.2. Variables locales ...................................................................................................................... 364
23.3. Récursion sans variables locales .................................................................................................. 367
24. Alias ............................................................................................................................................... 370
25. Constructeurs de listes ....................................................................................................................... 372
26. Tableaux ......................................................................................................................................... 375
27.
/dev
et
/proc
................................................................................................................................ 399
27.1.
/dev
..................................................................................................................................... 399
27.2.
/proc
................................................................................................................................... 400
28. Des Zéros et des Nulls ....................................................................................................................... 406
29. Débogage ........................................................................................................................................ 410
30. Options ........................................................................................................................................... 419
31. Trucs et astuces ................................................................................................................................ 421
32. Écrire des scripts avec style ................................................................................................................. 428
32.1. Feuille de style non officielle d'écriture de scripts ........................................................................... 428
33. Divers ............................................................................................................................................. 431
33.1. Shells et scripts interactifs et non interactifs ................................................................................... 431
33.2. Précédence des opérateurs .......................................................................................................... 432
33.3. Scripts d'appel .......................................................................................................................... 434
33.4. Tests et comparaisons : alternatives .............................................................................................. 438
33.5. Un script s'appelant lui-même (récursion) ...................................................................................... 438
33.6. « Coloriser » des scripts ............................................................................................................. 440
33.7. Optimisations .......................................................................................................................... 452
33.8. Astuces assorties ...................................................................................................................... 453
33.9. Problèmes de sécurité ................................................................................................................ 463
33.10. Problèmes de portabilité ........................................................................................................... 464
33.11. Scripts sous Windows .............................................................................................................. 464
34. Bash, version 2 et 3 ........................................................................................................................... 465
34.1. Bash, version 2 ......................................................................................................................... 465
34.2. Bash, version 3 ......................................................................................................................... 469
35. Notes finales .......................................................................................................................................... 472
35.1. Note de l'auteur .............................................................................................................................. 472
35.2. À propos de l'auteur ........................................................................................................................ 472
35.3. Où trouver de l'aide ......................................................................................................................... 472
35.4. Outils utilisés pour produire ce livre ................................................................................................... 472
35.5. Remerciements .............................................................................................................................. 473
35.6. Avis de non-responsabilité ............................................................................................................... 475
Bibliographie .............................................................................................................................................. 476
A. Contribution de scripts .............................................................................................................................. 477
B. Cartes de référence ................................................................................................................................... 626
C. Petit guide sur Sed et Awk ......................................................................................................................... 631
C.1. Sed ............................................................................................................................................... 631
C.2. Awk .............................................................................................................................................. 634
D. Codes de sortie ayant une signification particulière ......................................................................................... 637
E. Une introduction détaillée sur les redirections d'entrées/sorties .......................................................................... 638
F. Options en ligne de commande .................................................................................................................... 640
F.1. Options standards en ligne de commande .............................................................................................. 640
F.2. Options en ligne de commande de Bash ................................................................................................ 641
G. Fichiers importants ................................................................................................................................... 642
H. Répertoires système importants ................................................................................................................... 643
I. Localisation ............................................................................................................................................. 645
J. Commandes d'historique ............................................................................................................................. 648
K. Un exemple de fichier
.bashrc
................................................................................................................ 649
L. Convertir des fichiers batch DOS en scripts shell ............................................................................................ 659
iii
Plik z chomika:
musli_com
Inne pliki z tego folderu:
Guide avance d_ecriture des scripts Bash.pdf
(2467 KB)
Batch.pdf
(971 KB)
Cours_de_MS-DOS.pdf
(444 KB)
Commandes Bash sous Linux 2003.pdf
(214 KB)
Langage_scripts.pdf
(504 KB)
Inne foldery tego chomika:
batch
Zgłoś jeśli
naruszono regulamin