1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 6 Substitution: variables et commandes,

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Page 1 Retour sur le e- tourisme. Page 2 Quelques chiffres…
Licence pro MPCQ : Cours
Distance inter-locuteur
Les numéros
1 V-Ingénierie… La compétence au service de lexigence… vous présente.
1. 2 Informations nécessaires à la création dun intervenant 1.Sa désignation –Son identité, ses coordonnées, son statut 2.Sa situation administrative.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Outils de développements
Systèmes Experts implémentation en Prolog
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 5 Interpréteur de commande, Bourne shell,
CPI/BTS 2 Programmation Web Introduction au PHP
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Aide-mémoire – FORMULAIRE Web DA/DT
Récursivité.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Filtre programmable nawk(1)
Cours de physique générale I Ph 11
Sémantique axiomatique
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Titre : Implémentation des éléments finis sous Matlab
Académie de Créteil - B.C Quest-ce quune Inscription 1)1 action + 1 stagiaire + 1 client 2)Parcours individuel (avec son Prix de Vente) 3)Un financement.
LES NOMBRES PREMIERS ET COMPOSÉS
VOC 1 CE2 Je sais utiliser des mots de la vie quotidienne.
Logiciel gratuit à télécharger à cette adresse :
2 TP avec l ’aide d ’un modeleur 3D :
Introduction à l’algorithmique
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 4 Syntaxe des commandes, documentation standard,
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Exemples de programmation Bourne shell et nawk(1)
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Programmation nawk(1)
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie II 2014.
GPA435 – Lab #2 partie 2 Explications compl é mentaires GPA435 – révision 2013, Tony Wong, ing., Ph.D.
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie I 2014.
Systèmes dexploitation et programmation de systèmes -GPA435- Cours #5: Éléments de programmation (Partie 2) Enseignant: Jean-Philippe Roberge Jean-Philippe.
Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #4: Éléments de programmation (Partie 1) Enseignant: Jean-Philippe.
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1.1 LES VECTEURS GÉOMÉTRIQUES
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Titre : Implémentation des éléments finis en Matlab
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Animateur : Med HAIJOUBI
Utilisation avancée de linux
Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #8: Introduction aux filtres - Filtres UNIX Enseignant: Jean-Philippe.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Shell Equipe ID Bioinformatics Training Course June 2014.
Centre d’échange d’informations sur la Convention sur la Diversité Biologique Bienvenue dans le cours sur l’ajout d’une page web sur un site web développé.
LES PILES ET FILES.
Exercice de vérification 1 p
Architecture Chapitre 4 Interruptions. 2 Plan Principe Schéma d’acquisition Les états d’une interruption Décentralisation des interruptions Exemples.
Les Chiffres Prêts?
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
Chapitre 3 :Algèbre de Boole
Université de Sherbrooke
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
Variables et environnement utilisateur W. Barhoumi.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Scripts et fonctions Instructions de contrôle
GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 7 Neutralisation, redirection, décodage des paramètres,
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
Transcription de la présentation:

1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 6 Substitution: variables et commandes, paramètres de Bourne shell, éléments de programmation

2 Substitution: variables  Une variable est identifiée par son nom.  Le contenu de la variable est identifié par le symbole $ placé devant le nom.  Par exemple: Programmation Bourne shell

3 Substitution: variables  L’interpréteur de commande Bourne shell réalisera la substitution du contenu d’une variable lorsqu’il rencontre le symbole $ suivi d’un nom de variable.  Deux comportements possibles:

4 Substitution: variables  Exemples de substitution des variables: Programmation Bourne shell Même résultat

5 Substitution: commandes  L’interpréteur de commande Bourne shell est en mesure de substituer le résultat d’une ligne de commandes UNIX.  Le symbole impliqué dans ce genre de substitution est l’accent grave ( ‘ ).  Exemple: Programmation Bourne shell pwd (print working directory)

6 Substitution: commandes  Il est possible d ’assigner le résultat d ’une ligne de commande UNIX à une variable.  Voici comment: Programmation Bourne shell Assignation du résultat des commandes UNIX à des variables Symbole anti-slash indiquant la continuation de la ligne de commande à la ligne suivante

7 Paramètres de Bourne shell  Paramètres de position: Programmation Bourne shell Ce sont des paramètres de position. Dans un programme Bourne shell, le contenu de ces paramètres de position est représenté par: $1, $2, $3 jusqu’à $9. Il s’agit du nom d’un fichier de commande Bourne shell. Le nom du fichier de commande est représenté par $0.

8 Paramètres de Bourne shell  Exemple de paramètres de position à l’aide d ’un programme Bourne shell: Programmation Bourne shell Instructions du programme param. Observez l’utilisation des paramètres de Bourne shell Résultat obtenu

9 Paramètres de Bourne shell Programmation Bourne shell  Les variables systèmes:  Ces variables sont pré-définies par le Bourne shell et sont disponibles pour les programmes. Utiliser le symbole $ pour obtenir leur contenu

10 Paramètres de Bourne shell Programmation Bourne shell  Les variables systèmes (suite): Utiliser le symbole $ pour obtenir leur contenu

11 Lecture et affichage  La commande read(1) réalise la lecture à partir de l’entrée standard: read var1 var2 var3 Lecture de l’entrée standard et placer les données dans les variables var1, var2 et var3. La séparation des données d’entrée en champs est réalisée par le Bourne shell à l’aide de la variable IFS (Internal Field Separator). voici une-ligne de donnees Il existe 4 champs. Programmation Bourne shell

12 Lecture et affichage Programmation Bourne shell  Exemple d’utilisation de read(1) : •La lecture est réalisée à partir de l’entrée standard. •Les données lues sont placées dans trois variables ( REPERTOIRE1, REPERTOIRE2 et REPERTOIRE3 ). •Le programme terminé son exécution par l ’affichage des données lues.

13 Lecture et affichage Programmation Bourne shell Les résultats obtenus. Observer bien la façon dont les données sont assignées aux variables.

14 Décision et bouclage  Instruction if - elsif - fi  Voici un exemple: Programmation Bourne shell Instruction if - fi Instruction if - else - fi L ’instruction if teste le statut de retour des commandes. La logique: vrai = 0, faux  0 (différent de zéro).

15 Décision et bouclage  Dans le programme précédent, nous avons utilisé la commande shift(1).  Voici une explication de son rôle: Programmation Bourne shell La commande shift(1) agit sur les paramètres de position de Bourne shell.

16 Décision et bouclage  Nous pouvons tester un ensemble de conditions à l ’aide de if(1).  Voir les notes de cours à la page 124.  Voici un exemple: Programmation Bourne shell

17 Décision et bouclage  Instruction for - done  Cette instruction sert à boucler:  sur les paramètres de position OU  sur une liste de paramètres donnée directement dans le programme  Attention! L’instruction for - done ne ressemble pas à celle des langages procédurals (ex: Basic, Pascal, C, etc.). Programmation Bourne shell

18 Décision et bouclage  Voici un exemple de son utilisation à l ’aide d’une liste de paramètres donnés explicitement dans le programme: Programmation Bourne shell Liste de paramètres donnés directement à l ’instruction for - done

19 Décision et bouclage  Un exemple utilisant les paramètres de position: Programmation Bourne shell Pour obtenir le même résultat que l’exemple précédent, vous devez lancer le programme de la manière suivante: fortest2 \ $HOME/.dt/types/ftp.dt\ $HOME/.dt/types/ftp.m.pm \ $HOME/.dt/types/ftp.t.pm\ $HOME/ftp

20 Décision et bouclage  Instruction case - esac  Il s’agit d’un ensemble de if - elsif - fi mais organisé d’une manière structurée.  La syntaxe de cette instruction ressemble à ceci:  var est le contenu d’une variable.  descripteur est une expression générique simple. Programmation Bourne shell

21 Décision et bouclage Programmation Bourne shell  Voici la liste des descripteurs de case - esac :

22 Décision et bouclage  Voici un exemple qui peut nous aider à mieux comprendre cette instruction: Programmation Bourne shell Voici une façon (simpliste) qui permet le décodage des options reçues d’un programme. Quel est le rôle du descripteur [!-]* et celui de *

23 Décision et bouclage Programmation Bourne shell  Voici un exemple de descripteur capable de détecter la présence d ’un code postal dans une variable:  Code postal: lettre-chiffre-lettre-chiffre-lettre-chiffre Ex: H1L4C9  Descripteur: [A-Z][0-9][A-Z][0-9][A-Z][0-9]

24 Décision et bouclage  Instruction while - do  La syntaxe de cette instruction est: while [ commandes-test ] docommandesdone  Il y aura bouclage tant et aussi longtemps que le statut de retour de commandes-test est vrai (égal à 0). Programmation Bourne shell

25 Décision et bouclage  Voici un exemple d’utilisation: Programmation Bourne shell On doit comprendre que le programme bouclera tant et aussi longtemps que le nom de répertoire donné n’est pas un répertoire valide.

26 Décision et bouclage  Instruction until - do  La syntaxe de cette instruction est: until [ commandes-test ] docommandesdone  Il y aura bouclage tant et aussi longtemps que le statut de retour de commandes- test est faux (non nul). Programmation Bourne shell

27 Décision et bouclage  Voici un exemple d’utilisation: Programmation Bourne shell On voit très bien que l’instruction until - do est le complément de while - do. Nous avons simplement éliminé la négation ! devant le test -d.

28 Fonctions Bourne shell  Nous pouvons rendre la programmation plus structurée en utilisant des fonctions.  La syntaxe est: NomDeFonction ( ) {commandes}  Une fonction Bourne shell joue le rôle d’une sous-routine. Programmation Bourne shell

29 Fonctions Bourne shell  Un résumé des caractéristiques :  Syntaxe: NomDeFonction () { commandes }  définition des fonctions Bourne shell: au début du fichier de commande;  prend préséance sur les commandes systèmes de même nom;  peut avoir une valeur de retour: exit n où n est une valeur numérique (=0  OK,  0  Erreur). Programmation Bourne shell

30 Fonctions Bourne shell Programmation Bourne shell Définition d’une fonction Utilisation des fonctions

31 Fonctions Bourne shell  Fonction et paramètres de position: Programmation Bourne shell

32 Neutralisation des caractères  Certains caractères ont des significations particulières pour l’interpréteur de commandes.  Par exemple: &, (, ), *, !, {, }, etc.  Cependant, à cause du nombre limité de caractères, certaines commandes et programmes réutilisent ces mêmes caractères mais à d’autres fins.  Par exemple: && (ET-logique), * (multiplication), ! (négation), etc. Programmation Bourne shell

33 Neutralisation des caractères  Sans un mécanisme d’échappement, ces caractères spéciaux seront interprétés par le Bourne shell.  Les commandes et programmes qui utilisent ces caractères spéciaux ne pourront pas s’exécuter correctement.  D’où la nécessité de neutraliser la signification particulière de ces caractères spéciaux pour le Bourne shell. Programmation Bourne shell

34 Neutralisation des caractères  Voici un exemple:  Nous désirons afficher la chaîne de caractère "TOTO & TATA". Voici le résultat: Programmation Bourne shell Le méta-caractère & est neutralisé par le symbole \ Le caractère & est interprété par Bourne shell comme une demande d’exécution en arrière-plan

35 Neutralisation des caractères  Donc, le symbole \ permet la neutralisation du caractère qui le suit.  Nous pouvons neutraliser la signification spéciale du caractère Espace par les symboles " " et ' '.  Le guillemet: élimine la signification spéciale du caractère Espace mais permet la substitution des variables et commandes.  L’apostrophe: élimine la signification spéciale du caractère Espace et empêche la substitution des variables et commandes. Programmation Bourne shell

36 Neutralisation des caractères  Voici un exemple qui aide à la compréhension de la neutralisation des caractères:  Pouvez-vous le pourquoi de ces résultats ? Programmation Bourne shell

37 Commandes exec(1) et trap(1)  Dans un programme Bourne shell, la commande exec(1) permet l’exécution d’une commande sans la création d ’un nouveau processus.  Vous pouvez donc passer des paramètres du programme à la commande exécutée.  Attention, ce n’est pas un appel de sous- routine car Le contrôle n’est pas retourné au programme ! Programmation Bourne shell

38 Commandes exec(1) et trap(1)  Voici un exemple:  Voici le résultat de son exécution:  On voit que la ligne echo "Fin du programme" n’est jamais exécutée! Programmation Bourne shell

39 Commandes exec(1) et trap(1)  La commande exec(1) sert aussi à rediriger les entrées et les sorties standards.  Voir les pages Ces pages peuvent vous aider à réaliser vos laboratoires !! Programmation Bourne shell

40 Commandes exec(1) et trap(1) Programmation Bourne shell  La commande trap(1) est fort utile pour la programmation Bourne shell.  Sa syntaxe est: trap 'commandes' signaux où commandes est un ensemble de commandes UNIX (les apostrophes sont nécessaires pour neutraliser les caractères spéciaux des commandes) où signaux sont des numéros (entiers)

41 Commandes exec(1) et trap(1) Programmation Bourne shell  À la réception d’un signal listé, la commande trap(1) exécutera les commandes entre apostrophes et termine le programme Bourne shell.  Il s’agit donc une forme de communication asynchrone entre les programmes (ou entre un programme et son terminal).  On peut considérer les signaux comme des interruptions logicielles (comparaison grossière).

42 Commandes exec(1) et trap(1) Programmation Bourne shell  Voici quelques numéros de signal:  À noter que le signal 9 est un signal qui ne peut être intercepté par trap(1). Saviez- vous la raison ?

43 Commandes exec(1) et trap(1) Programmation Bourne shell  Voici un exemple utilisant trap(1) :  Lancer le programme et appuyer sur les touche ctrl-c.  Le programme se terminera par la commande exit et provoque le signal 0.  La 2e commande trap(1) est alors exécutée.

44 Fin du chapitre Interpréteur de commande  Le chapitre suivant présentera d’une manière plus approfondie la programmation Bourne shell.  Également, nous présenterons plusieurs commandes utiles qui facilitent la programmation Bourne shell. Fin du chapitre 6