Objectifs du cours:
Apprendre à automatiser,fiabiliser les travaux répétitifs Savoir développer plus rapidement qu’en programmation traditionnelle. Maîtriser les principales instructions du langage de cript. Connaître les différentes facettes de chacun des interpréteurs.
PRÉSENTATION ET RAPPELS.
- Principes.
- Les différents interpréteurs : Bourne Shell, Korn Shell, Bash, C Shell.,Tcsh...
- Disponibilité des interpréteurs sur les divers systèmes Unix.
- Le point sur la normalisation (impacts sur l’écriture des scripts).
- Les apports GNU (gawk, gsed...).
- Différences Bourne Shell/Korn Shell/Bash.
PROGRAMMATION PAR SCRIPTS.
- Outils de développement.
- Mécanisme d’exécution des scripts.
- Règles de recherche des commandes.
- Principes d’exécution d’une commande
- (exec, pipeline, sous-shell, background, ...).
MÉCANISMES DE BASE.
- Lecture et analyse de la ligne de commande.
- Expansion des accolades, développement du tilde, remplacement des paramètres.
- Substitution des commandes et évaluation arithmétique.
- Procédés d’échappement (banalisation).
- Les redirections (entrée et sortie standard,fichiers, tubes, document en ligne).
FONCTIONNEMENT EN INTERACTIF.
- Invocation du shell (options).
- Les différents fichiers de démarrage.
- Notions d’environnement (variables, alias, fonctions).
- Historique et rappel des commandes.
- Contrôle de jobs.
- La complémentation des noms.
- Terminaison du shell.
CONSTRUCTION DE SHELL-SCRIPTS PORTABLES (KSH/BASH).
- Interface avec un shell-script.
- Structuration d’un shell-script.
APPEL D’UN SHELL-SCRIPT
- Rappels sur les différentes méthodes.
- Options utilisables. Notions de sous-shell.
- Compléments sur l’environnement. Options et arguments.
PRÉAMBULE DU SHELL-SCRIPT
- Qui interprète le shell-script ? Commentaires.
- Paramètres de position (initialisation,
- sauvegarde, décalages).
- Variables locales. Variables globales.
- Déclaration et visibilité des fonctions.
POSTAMBULE ET RETOUR DE SHELL-SCRIPT
- Sortie du shell-script.
- Fonction de sortie.
- Conventions utilisées.
- Valeur de retour.
- Enchaînement de shell-scripts.
STRUCTURES DE CONTRÔLE DU SHELL
- Commandes simples, pipelines, et listes de pipelines.
- Commandes composées, sous-shells et fonctions.
- Mécanismes de sélection et d’itération. Menus.
COMMANDES INTERNES ET EXTERNES
- Entrées/Sorties. Interactions avec le système.
- Arguments en ligne de commande. Opérations de tests. Compléments sur les instructions.
- Redirection locale dans les fichiers de commande.
MÉCANISMES COMPLÉMENTAIRES.
DEBUGGING D’UN SHELL-SCRIPT
- Commandes de debugging.
- Signaux de trace.
- Journalisation.
ROBUSTESSE D’UN SHELL-SCRIPT
- Vérifier l’initialisation des variables.
- Gestion avancée des arguments en ligne de commande (getopts).
- Tests sur le type des variables (expr).
- Gestion des signaux.
AUTRES POINTS
- Nommage et destruction des fichiers temporaires.
- Cas particulier d’exécution d’un shell-script par cron.
- La commande eval.
EXTENSIONS DU KORN SHELL ET BASH.
- Tableaux de variables.
- Notations spécifiques.
- Opérations arithmétiques.
- Les alias suivis.
- Notion de coprocessus.
- Les commandes internes spécifiques.
OUTILS SUPPLÉMENTAIRES.
OUTILS D’ASSISTANCE POUR LA CRÉATION DE SCRIPTS
- Expressions rationnelles : outil grep.
- Recherche et traitement de fichiers : outil find.
MANIPULATION DE FLUX DE TEXTE AVEC SED
- Principes et aspects des scripts. Commandes
- simples de recherche, remplacement, insertion.
- Aperçu des commandes avancées.
AUTOMATISATION DE TÂCHES AVEC AWK
- Eléments généraux de programmation avec awk.
- Utilisation des variables et des fonctions.
- Présentation des fonctions intégrées :mathématique, traitement de chaîne,interaction avec le système...
- Exemples complets de scripts Awk (statistiques système, calculs...).