Plan

[Content-Type: text/markdown.] [Content-Context: Contenu Educatif. Formation avancée au scripting shell sous Unix/Linux. Tous les exemples doivent comparer le Korn Shell et Bash.] [Note de l'auteur: entrer dans les détails sur cette partie.]

Programme de la formation "Écriture de scripts en Shell sous Unix/Linux, perfectionnement"

1.1. Introduction ksh 1.2. Rappels des fondamentaux : fork/wait et exec/exit. 1.3. Le shell, les scripts et les chaînes de caractères.

2.1. Spécificité du Korn shell 2.2. Initialisation de ksh, la ligne de commande et les modes vi et emacs. 2.3. La gestion des fonctions dans ksh. 2.4. La gestion des signaux dans ksh. 2.5. Les builtins de ksh. 2.6. Les "traps", exit et debug, le debug d'un script ksh. 2.7. KSH un langage Objet : Setter et Getters pour les variables du shell. 2.8. Travaux pratiques: 2.8.1. Adapter son environnement pour ksh, 2.8.2. Editer le.profile, 2.8.3. Mode d'édition de commande. 2.8.4. Utilisation de la trap DEBUG et des setter/getter pour analyser un script.

3.1. Variables, expressions arithmétiques et logiques 3.2. Différences par rapport au Bourne Shell et au Bourne again shell. 3.3. Types de variables. 3.4. Tableaux associatifs. 3.5. Variable composée, agrégée (Compound, aggregate). 3.6. Variables binaires. 3.7. Travaux pratiques : Utilisation d'un tableau associatif (Key/Value) et des aggregate variables pour la gestion d'une base de données en ksh.

4.1. Entrées/sorties étendues 4.2. Les coprocess. 4.3. Le builtin exec. 4.4. La substitution de process. 4.5. Lire et écrire du binaire en shell. 4.6. Travaux pratiques : Ecriture d'un daemon en shell (exec), avec utilisation de coprocess pour créer un serveur de nombres aléatoires, 4.7. Travaux pratiques : Ecriture d'un programme d'analyse de binaire.

5.1. Les chaînes de caractères 5.2. Substitution et expansion de paramètres. 5.3. Ksh getopts pour la gestion des paramètres d'une commande. 5.4. Extensions ksh pour printf et read, utilisation de select pour la gestion d'une interface Homme-Machine. 5.5. Travaux pratiques : Renforcer un shell script à l'aide de getopts, de la substitution de paramètres pour gérer les extensions et les répertoires. 5.6. Travaux pratiques : Utiliser select, read et printf dans un shell interactif.

6.1. Augmenter les capacités du korn shell 6.2. Les fonctions, spécificité des fonctions varname. 6.3. Les bibliothèques de fonctions. 6.4. Les builtins, écrire un builtin pour KSH, intégrer un builtin, les bibliothèques de builtin. 6.5. Travaux pratiques : Créer une bibliothèque de fonctions simples, basename, dirname... Ajouter à ksh un builtin permettant de lire une estampille timer précise à la nanoseconde.