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.

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Premier programme en C :
La boucle for : init7.c et init71.c
Rappels C.
Portée des variables VBA & Excel
Les Prepositions.
1 V-Ingénierie… La compétence au service de lexigence… vous présente.
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
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
FLSI602 Génie Informatique et Réseaux
Initiation à la programmation et algorithmique cours 3
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,
Systèmes d'exploitations Les redirections d'entrées/sorties GRARI Mounir ESTO Année 2011.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Les commandes Unix.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
CPI/BTS 2 Programmation Web Introduction au PHP
Cours de programmation
PAFI Référentiel de données par Sonia Watts DGIF (Direction de la gestion et de linformation forestière) 27 octobre 2010 et 3 novembre 2010.
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)
Analyse lexicale Généralités Expressions rationnelles Automates finis
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Version 2007Administration système Linux Francis Rogard 1 SYSTEME DEXPLOITATION LINUX La ligne de commandes.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
Perl, un langage de programmation pour les données textuelles
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)
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.
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.
Notre calendrier français MARS 2014
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 3 Syntaxe et sémantique.
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système d’exploitation et programmation de système Chapitre
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 6 Substitution: variables et commandes,
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.
Structures des données
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Shell Equipe ID Bioinformatics Training Course June 2014.
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
Les Chiffres Prêts?
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),
Un survol du language C.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Variables et environnement utilisateur W. Barhoumi.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Elaboré par Ahmed BESSAIDI
Scripts et fonctions Instructions de contrôle
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
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,
Introduction à l’utilitaire
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
Transcription de la présentation:

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

GPA435, GPA – ÉTS, T. Wong Substitution: variables Une variable est identifiée par son nom. Une variable est identifiée par son nom. Le contenu de la variable Le contenu de la variable Une variable est identifiée par son nom. Une variable est identifiée par son nom. Le contenu de la variable est identifié par le symbole $ placé devant le nom. Le contenu de la variable est identifié par le symbole $ placé devant le nom. Par exemple: Par exemple: 2 GPA435$GPA435 Nom de la variable Contenu de la variable

GPA435, GPA – ÉTS, T. Wong Substitution: variables Linterpréteur de commande réalisera la substitution du contenu dune variable lorsquil rencontre le symbole $ suivi dun nom de variable. Linterpréteur de commande réalisera la substitution du contenu dune variable lorsquil rencontre le symbole $ suivi dun nom de variable. Deux résultats possibles: Deux résultats possibles: Substitution du contenu Substitution du contenu o Si la variable est définie et son contenu est non nul. Substitution vide Substitution vide o Si la variable nest pas définie ou son contenu est nul. 3 Lorsquune variable est vide (sans aucune donnée) alors son contenu est nul

GPA435, GPA – ÉTS, T. Wong Substitution: variables Exemple de substitution des variables Exemple de substitution des variables 4 Même résultat

GPA435, GPA – ÉTS, T. Wong Substitution: commandes Il est possible dassigner le résultat dune ligne de commandes à une variable. Il est possible dassigner le résultat dune ligne de commandes à une variable. Pour ce faire, entourer les commandes par les caractères ` ` (accents grave). Pour ce faire, entourer les commandes par les caractères ` ` (accents grave). Voici la substitution des commandes à lœuvre: Voici la substitution des commandes à lœuvre: 5 Note 1: le code \n signifie afficher une nouvelle ligne. Note 2: le caractère \ précédé et suivi du caractère espace indique la continuation de la ligne de commande à la ligne suivante.

GPA435, GPA – ÉTS, T. Wong Paramètres dune commande Paramètres de position Paramètres de position commande param1 param2 param2 param4 6 Il sagit du nom de la commande. Le nom de la commande est représenté par le paramètre de position $0. Ce sont des paramètres de la commande. Dans linterpréteur de commande, le contenu de ces paramètres est représenté par: $1, $2, $3 jusquà $9

GPA435, GPA – ÉTS, T. Wong Paramètres dune commande Paramètres de position Paramètres de position 7 $0 ls $1 -lg $2 Downloads $0 cp $1 Downloads/gpa435_ch5.pptx $2 Downloads/GPA435_CH5.pptx $0 ls $1 -l $2 Downloads

GPA435, GPA – ÉTS, T. Wong Paramètres dune commande Exemple dutilisation Exemple dutilisation 8

GPA435, GPA – ÉTS, T. Wong Paramètres dune commande Paramètres de position Paramètres de position Nous pouvons manipuler les paramètres de position: Nous pouvons manipuler les paramètres de position: o Le décalage vers la gauche à laide de shift 9 #!/bin/bash # Nom du programme: decalage # decalage: démontrer l'utilisation de shift pour décalage les paramètres # de position vers la gauche echo "La ligne de commande est: echo "Paramètre de position 1: $1" shift echo "Paramètre de position 1: $1" shift echo "Paramètre de position 1: $1" shift echo "Paramètre de position 1: $1" Décaler à gauche dune position

GPA435, GPA – ÉTS, T. Wong Paramètres dune commande Paramètres de position Paramètres de position Nous pouvons manipuler les paramètres de position: Nous pouvons manipuler les paramètres de position: o Le décalage vers la gauche à laide de shift 10 Résultat: Les commandes shift ont placé tour à tour les paramètres de position B, c et d dans la variable $1.

GPA435, GPA – ÉTS, T. Wong Paramètres dune commande Paramètres de position Paramètres de position Symboles associés Symboles associés 11 SymboleSignification $0 Nom de la commande $1 à $9 Contenu des paramètres de position de la commande $$ Numéro de processus (PID) de linterpréteur de commande qui exécute la commande $# Nombre de paramètres de position Contenu de la ligne de commande

GPA435, GPA – ÉTS, T. Wong Variables de linterpréteur Ces variables sont prédéfinies par linterpréteur de commande et sont disponibles pour les programmes utilisateurs Ces variables sont prédéfinies par linterpréteur de commande et sont disponibles pour les programmes utilisateurs 12 VariablesSignification $? Létat de terminaison de la dernière commande exécutée $HOME Le chemin de répertoire menant vers le dossier de lutilisateur $PATH Le chemin de fouille pour les programmes et commandes $USER Le nom dutilisateur $HOSTNAME Le nom de lordinateur $OSTYPE Le nom du système dexploitation $UID Le numéro de lutilisateur $* Contenu de la ligne de commande

GPA435, GPA – ÉTS, T. Wong Lecture et affichage La commande read(1) réalise la lecture des données à partir de lentrée standard: La commande read(1) réalise la lecture des données à partir de lentrée standard: read var1 var2 var3 o Lecture de lentrée standard et place les données dans les variables var1, var2 et var3. o La séparation des données en champs est réalisée par linterpréteur de commande à laide de la variable IFS (Internal Field Separator). o IFS contient habituellement les caractères espace, tab et ENTER. 13 voici une-ligne de données ! Il y a 5 champs var1var2var3

GPA435, GPA – ÉTS, T. Wong Lecture et affichage La commande read(1) La commande read(1) 14 Note 1: read(1) utilise les caractères contenus dans la variable IFS pour réaliser la séparation des champs. Note 2: read(1) élimine automatiquement les séparateurs de champs de la ligne de données. Note 3: read(1) place le contenu des champs dans les paramètres de position. Le 1er champs dans le 1er paramètre de position. Le 2e champs dans le 2e paramètre de position et ainsi de suite. Pour les champs excédentaires, ils seront placés dans le dernier paramètre de position.

GPA435, GPA – ÉTS, T. Wong Lecture et affichage La commande read(1) La commande read(1) 15 La commande read placera les données lues dans les variables: POSITION_1, POSITION_2, POSITION_3 et LE_RESTE_DES_EQUIPES ensuite la commande echo affichera le contenu des variables à la sortie standard.

GPA435, GPA – ÉTS, T. Wong Lecture et affichage La commande read(1) La commande read(1) 16 Observer bien le contenu de la dernière variable LE_RESTE_DES_EQUIPES

GPA435, GPA – ÉTS, T. Wong Lecture et affichage La commande echo(1) réalise laffichage à la sortie standard: La commande echo(1) réalise laffichage à la sortie standard: echo Allo tout le monde echo $var1 $var2 $var3 o Affiche à la sortie standard le contenu des variables var1, var2 et var3. echo -e $var1 $var2 $var3 o Loption –e permet lintroduction des codes de contrôle daffichage 17 \n nouvelle ligne \t tab \r return \b backspace \c continuer laffichage sur la même ligne Consulter man echo pour connaître tous les codes de contrôle acceptés par la commande echo.

GPA435, GPA – ÉTS, T. Wong Lecture et affichage La commande echo(1) réalise laffichage à la sortie standard: La commande echo(1) réalise laffichage à la sortie standard: 18 \n nouvelle ligne \t tab \r return \b backspace \c continuer laffichage sur la même ligne Pourquoi ce résultat? Réponse: Lire la ligne de commande débutant par la gauche et interpréter les codes de contrôle.

GPA435, GPA – ÉTS, T. Wong Lecture et affichage La commande printf(1) réalise laffichage à la sortie standard: La commande printf(1) réalise laffichage à la sortie standard: printf "Allo tout le monde\n" printf "%s\t%s\t%s\n" $var1 $var2 $var3 o Affiche à la sortie standard le contenu de var1, suivi du code tabulation, suivi du contenu de var2, suivi du code tabulation, suivi du contenu de var3 suivi du code nouvelle ligne. o La chaîne "%s\t%s\t%s\n" est appelée chaîne de formatage et elle accepte les mêmes formats que sa contrepartie du langage C. En voici quelques exemples: 19 %s chaîne de caractères %d, %i nombre décimal signé %u nombre décimal non signé %f nombre en virgule flottant %c un caractère Consulter man printf pour connaître tous les formatages acceptés par la commande printf.

GPA435, GPA – ÉTS, T. Wong Lecture et affichage Quelques exemples Quelques exemples 20

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction if – then - else - fi Instruction if – then - else - fi 21 #!/bin/bash # Nom du programme: affiche # affiche: démontrer l'utilisation des instructions if - then - else - fi if [ $# = 0 ] # si la commande a été lancée sans aucun paramètre de position... then echo "Usage: affiche [-v] nom_fichier" 1>&2 echo " -v utilise more pour formater l'affichage" 1>&2 exit 1 # erreur alors donner le code de retour 1 fi if [ "$1" != "-v" ]; then cat "$1" # pas d'option "-v" alors c'est le nom du fichier à afficher else if [ "$2" != "" ]; then cat "$2" | more # alors afficher le fichier avec formatage par more else echo "Nom du fichier à affiche est manquant" exit 1 # erreur alors donner le code de retour 1 fi exit 0 # tout va bien alors donner le code de retour 0

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Nous pouvons tester un ensemble de conditions par des opérateurs logiques et des options de linstruction if Nous pouvons tester un ensemble de conditions par des opérateurs logiques et des options de linstruction if 22 #!/bin/bash # Nom du programme: iftest # iftest: démontrer l'utilisation des opérateurs logiques avec l'instruction if # voir si le fichier suivant existe et... NOMFICHIER="$HOME"/GPA435/chap6/affiche if [ -f "$NOMFICHIER" ] then # voir s'il possède les permissions en lecture ou en écriture mais pas d'exécution if [ \( -r "$NOMFICHIER" -o -w "$NOMFICHIER" \) -a ! -x "$NOMFICHIER" ]; then echo "$NOMFICHIER accessible en lecture ou en écriture seulement" else echo "$NOMFICHIER est exécutable" fi else echo "$NOMFICHIER n'existe pas" fi Consulter man test ou les notes de cours chapitre 6 pour connaître les opérateurs logiques et options disponibles

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction for - done Instruction for - done Cette instruction sert à boucler: Cette instruction sert à boucler: o Sur les paramètres de position; OU o Sur une liste de paramètres donnés directement dans le programme. Attention! Linstruction for – done ne ressemble pas à celle des langages classiques (basic, C, MATLAB, etc.) Attention! Linstruction for – done ne ressemble pas à celle des langages classiques (basic, C, MATLAB, etc.) 23

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction for – done Instruction for – done Bouclage sur les paramètres de position Bouclage sur les paramètres de position 24 #!/bin/bash # Nom du programme: fortest1 # fortest1: montrer bouclage for - done sur les paramètres de position # voir si les fichiers donnés à la ligne de commande existent... if [ $# -ne 0 ]; then # boucler sur les paramètres de position for NOMFICH do if [ -f "$NOMFICH" ] ; then printf "%s existe\n" "$NOMFICH" else printf "%s n'existe pas\n" "$NOMFICH" fi done exit 0 else echo "Pas de paramètres de position ;((" fi exit 1 Variable qui recevra tour à tour les paramètres de position données à la ligne de commande

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction for – done Instruction for – done Bouclage sur les paramètres de position Bouclage sur les paramètres de position 25 Dans cet exemple, linstruction for – done bouclera sur les paramètres de position et mettra tour à tour « affiche », « iftest », « lecture » et « toto » dans la variable NOMFICH.

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction for – done Instruction for – done Bouclage sur une liste de paramètres donnés dans le programme Bouclage sur une liste de paramètres donnés dans le programme 26 #!/bin/bash # Nom du programme: fortest2 # fortest1: montrer bouclage for - done sur les paramètres donnés dans le programme # voir si les fichiers donnés à la ligne de commande existent... for NOMFICH in "affiche" "iftest" "lecture" "toto" do if [ -f "$NOMFICH" ] ; then printf "%s existe\n" "$NOMFICH" else printf "%s n'existe pas\n" "$NOMFICH" fi done

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction for – done Instruction for – done Bouclage sur une liste de paramètres donnés dans le programme Bouclage sur une liste de paramètres donnés dans le programme 27 Dans cet exemple, linstruction for – done bouclera sur les paramètres donnés explicitement dans le programme et mettra tour à tour « affiche », « iftest », « lecture » et « toto » dans la variable NOMFICH.

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction case - esac Instruction case - esac Sémantiquement case – esac est un ensemble de if – then – else mais organisée dune manière structurée. Sémantiquement case – esac est un ensemble de if – then – else mais organisée dune manière structurée. La syntaxe de cette instruction: La syntaxe de cette instruction: case var in descripteur [| descripteur] ) cmds ;; descripteur [| descripteur] ) cmds ;;esac o var est une variable dont le contenu est à tester; o descripteur est une expression qui sert de comparaison; o cmds sont des commandes à exécuter si le résultat de la comparaison est vrai. 28

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction case - esac Instruction case - esac Voici la liste des descripteurs de case - esac Voici la liste des descripteurs de case - esac 29 DescripteurSignification * Une chaîne de caractères quelconque incluant la chaîne vide ? Un caractère quelconque incluant le caractère vide [abcdeFg] Un caractère parmi ceux placés entre crochets (OU- logique implicite) [a-z] Un caractère parmi la gamme de caractères placés entre crochets (OU-logique implicite) [!abcdeFg][!a-z] Un caractère qui nest pas ceux placé entre crochets (négation-logique) xabcdeFg Un ou plusieurs caractères donnés explicitement (ET- logique implicite)

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction case - esac Instruction case - esac 30 #!/bin/bash # Nom du programme: casesac # casesac: montrer l'utilisation de case - esac # traiter les paramètres de position d'une commande if [ $# -eq 0 ]; then echo "usage: casesac -t -q -l nom_du_fichier" exit 1 fi # utiliser case - esac pour traiter les paramètres de position for OPTION ; do case "$OPTION" in -t) echo "Option -t reçue" OPT_T="OUI" ;; -q) echo "Option -q reçue" ; OPT_Q="OUI" ;; -l) echo "Option -l reçue" ; OPT_L="OUI" ;; [!-]*) echo "Nom du fichier reçu"; NOM_FICH="$OPTION" ;; *) echo "Option inconnue $OPTION reçue" ;; esac done if [ -f "$NOM_FICH" ]; then echo "Fichier $NOM_FICH existe!" else echo "Fichier $NOM_FICH n'existe pas!" fi Que signifie le descripteur ? [!-]* Pourquoi le description *) est-il placé à la fin de case – esac dans cet exemple?

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction case - esac Instruction case - esac 31 [!-]* sert à tester les paramètres de position qui ne commencent pas par un tiret. *) placé à la fin de case – esac permet de capturer les options illégales données à la ligne de commande par lutilisateur.

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction case - esac Instruction case - esac Voici un exemple de descripteur capable de détecter la présence dun code postal dans une variable: Voici un exemple de descripteur capable de détecter la présence dun code postal dans une variable: o Code postal Lettre-chiffre-lettre-chiffre-lettre-chiffre Par exemple: H3C1K3 o Descripteur [A-Z][0-9][A-Z][0-9][A-Z][0-9] o Par contre, le descripteur précédent ne reconnaîtra pas h3C1k3 o Nouveau descripteur (bingo!) [A-Za-z][0-9][A-Za-z][0-9][A-Za-z][0-9] 32

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction while – do - done Instruction while – do - done La syntaxe de cette instruction est: La syntaxe de cette instruction est: while [ commandes-test ] do commandes commandesdone o Il y aura bouclage tant et aussi longtemps que le statut de retour de commandes-test est vrai (égal à 0) 33 Attention! La logique utilisée est la suivante: Égal à zéro Vrai Différent de zéro Faux

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction while – do - done Instruction while – do - done 34 #!/bin/bash # Nom du programme: whiletest # whiletest: montrer l'utilisation de while - do - done # boucler et demander à l'utilisateur le nom d'un répertoire # qui doit exister REPERTOIRE= while [ ! -d "$REPERTOIRE" ] do printf "Donner le nom d'un répertoire existant: " read REPERTOIRE done echo "Merci!"

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction until – do - done Instruction until – do - done La syntaxe de cette instruction est: La syntaxe de cette instruction est: until [ commandes-test ] do commandes commandesdone o Il y aura bouclage tant et aussi longtemps que le statut de retour de commandes-test est faux (différent de 0) 35 Attention! La logique utilisée est la suivante: Égal à zéro Vrai Différent de zéro Faux

GPA435, GPA – ÉTS, T. Wong Décision et bouclage Instruction until – do - done Instruction until – do - done 36 #!/bin/bash # Nom du programme: untiltest # untiltest: montrer l'utilisation de until - do - done # boucler et demander à l'utilisateur le nom d'un répertoire # qui doit exister REPERTOIRE= until [ -d "$REPERTOIRE" ] do printf "Donner le nom d'un répertoire existant: " read REPERTOIRE done echo "Merci!" On voit très bien que until – do – done est le complément de while – do - done

GPA435, GPA – ÉTS, T. Wong Fin de la première partie du chapitre 6