Chapitre 3: La programmation SHELL. Chapitre 3 : La programmation SHELL 1. Définition  Le Shell est plus qu’un interpréteur de commandes: c’est également.

Slides:



Advertisements
Similar presentations
Youre welcome. D_ R_ De rien I have to J_ d_ Je dois.
Advertisements

FREQUENCY toujours always/still souvent often quelquefois sometimes rarement rarely, not often le matin/tous les matins in the morning/every morning une.
Écriture créative: raconter une histoire Comment enrichir sa production écrite.
Viet Nam Waterfalls Texte original en français : Raoul Follereau English translation : Truc Huy.
Animation du tp2 Traitement des exceptions Le bloc try/catch/finally
Changing World of Work Le monde du travailil change encore... Its been a hard days night... Media/Family/Peers – Expectations about work Médias, famille,
© Mark E. Damon - All Rights Reserved Round 1Round 2 Final Jeopardy Raoul Brigitte Marie.
1 Le C.C.F. en Baccalauréat Professionnel T.I.S.E.C. T.I.S.E.C. T.M.S.E.C T.M.S.E.C T.F.C.A T.F.C.A.
Vocabulaire commun An iTutor Basic French Vocabulary.
Perles d’avocats Voici une sélection de questions réellement posées à des témoins par des avocats durant des procès aux Etats-Unis et, dans certains.
Cours 9 Les protocoles de niveau trame. La trame LAP-B Le protocole LAP-B (Link Access Protocol - channel B) est une trame qui a été normalisée pour transporter.
TICE 2 ième Semestre Fonctions « logiques ». Février 2006TICE 2ième Semestre - Les fonctions logiques2 Petits rappels… Une formule est toujours de la.
Transition Words for AP French Presentational and Interpersonal Modes Jocelyne A.M. Waddle Master Teacher of French Middlebury Interactive Languages 2011.
Nature du contrat de travail. oContrat de travail à durée déterminée.  Contrat de travail à durée indéterminée. oContrat de travail intérimaire. oContrat.
15/11/2001L. May EOH d'Argenteuil1 Mise en place des SHA au centre hospitalier d’Argenteuil (sélection et formation) Dr. Laetitia May-Michelangeli EOHA.
LE SMED Outil d’amélioration Silvia OLIVIERI Décembre 2009.
Accident : Evénement soudain et imprévu qui a pour conséquence une atteinte à: la santé des personnes ; l'environnement ; aux biens et équipements.
Edit the text with your own short phrases. The animation is already done for you; just copy and paste the slide into your existing presentation. This animation.
1 L’analyse de variance Philippe DELEPORTE UMR Eco&Sols.
Activités mathématiques autour du jeu de bridge Séance 1 1.
INSTITUT NATIONAL DE LA STATISTIQUE DU CAMEROUN COMMISSION ECONOMIQUES DES NATIONS UNIES POUR L’AFRIQUE Port Louis juillet 2010.
 Assistant d’équipe  Assistant de groupe de projet  Assistant Ressources Humaines  Assistant commercial  Assistant de direction  Assistant en.
1 Cours UBO 2007 UE – BASES DE DONNEES OCEANOGRAPHIQUES Le portail NAUTILUS accès en ligne aux données et site WEB du SISMER Michèle FICHAUT.
TEST QUIZ Grammaire Conjugaisons & Les groupes des verbes À quel groupe appartient le verbe: aimer ? Premier groupe Premier groupeaimer Deuxième groupe.
Pour plus de modèles : Modèles Powerpoint PPT gratuitsModèles Powerpoint PPT gratuits Page 1 Définition d’une tâche complexe.
Chapitre 24 Vérifiez votre compréhension p Morholt est important parce qu’il est à l’origine de toute cette histoire.
Mathématiques CST MODULE 6 L’optimisation de GRAPHES.
Le lion De Candice 1. L’identité du lion : Le mâle s’appelle le lion, la femelle la lionne et le petit le lionceau. Le lion pèse 150 kg à 220 kg. Il mesure.
Utilisation du spectrophotomètre. Allumer l’appareil Puis allumer l’ordinateur (commun au spectro et à la Q-PCR) Utilisation du spectrophotomètre Ouvrir.
Février 2014 GPU / Xeon Phi Calcul de fonction de corrélation à 2 points sur un grand nombre de galaxies Image : collaboration SDSS Problème : pour effectuer.
Association canadienne des optométristes Myopie. La myopie est un problème visuel qui fait que l’œil peut voir clairement les objets proches, mais ne.
Guide de l'enseignant SolidWorks, leçon 4 Nom de l'établissement Nom de l'enseignant Date.
Changement de sonorité Utilisation de S.A., etc. Edition de multi-pads.
Cours n°1M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception d’un système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Un module éducatif du district de l’est du Canada et des Caraïbes
CopiesEnLigne (CEL) TUTORIEL INTERACTIF
Les 8 types de nuages les plus spectaculaires qui flottent au- dessus de votre tête par Paulajo.
TP ISN Terminale S Instruction if (Programmation Java)
Densité et masse volumique. Imaginons que nous prenions deux cylindres, de même volume, constitués avec des métaux différents. En les pesant, nous trouvons.
1 Ivana Antić TS Ivana Nestorović TS Internet mai, 2014.
Dynamic Host Configuration Protocol 1 DHCP. Introduction Lorsque vous connectez une machine à un réseau Ethernet TCP/IP, cette machine, pour fonctionner.
Tuesday, the 10th of September, 2013
Holocauste Transparent light effect (Basic)
Organiser son discours (PPC + PPI + EE) A-Level
ADM2736A Comportement organisationnel La performance au travail Article de Colquittl Automne, 2014Laurent M. Lapierre1.
ADM2736A Comportement organisationnel Émotions et attitudes au travail Automne, 2014Laurent M. Lapierre1.
ADM2736A Comportement organisationnel La perception, l’attribution et l’apprentissage Automne, 2014Laurent M. Lapierre1.
M. Amine BENNIS Booster sa carrière: perspectives. 07/12/20171 BOOSTER SA CARRIERE.
LES TOLERANCES ET AJUSTEMENTS Suite ENPEI. LES TOLERANCES 1- LES AJUSTEMENTS 2- ALESAGE - TOLERANCES FONDAMENTALES 3- ARBRE - TOLERANCES FONDAMENTALES.
Diapositive N°1 A. Elkhyari Université Jean Monnet St Etienne Introduction à Linux Abdallah ELKHYARI L1 Math-Info.
LONDON/ OXFORD/ ROCHESTER JUNE Modalités de départ/retour -Départ : Rendez-vous à 13H Devant le collège, Dimanche 3 Juin avec la carte d’identité.
CHAPITRE N°4: LA COUPE SIMPLE & LES FILETAGES 2016/2017 PLAN DE LA LEÇON  A/.LA COUPE SIMPLE :  I/-Mise en situation:I/-Mise en situation:  II/-Définition.
L’institut de beauté et du bien-être à Bulle.
teinture des sourcils-6sens
Module N° 1 Introduction au cours. Permettre aux participants du cours de prendre connaissance des buts, conception, contenu et structure du cours.
Structure en couche Le modèle de référence OSI Luc De Mey
 Norton Antivirus a la capacité de 3 logiciels antivirus. Cela nous donne trois fois plus de sécurité qu'une normale. Son but est de sauver l'appareil.
Que faire lorsque je suis confronté à un problème lors de la connexion à Norton Server?
Cpasbien 2017 & 2018 Films & Video Series Telecharger film.
Cpasbien 2017 film Cpasbien series. Vous pouvez trouver ici des séries de vidéos populaires qui pourraient vous divertir Série de films français populaires.
Définition d'un fossile : Il s'agit généralement d'Animaux ou de Plantes qui suite à leur mort se sont conservés dans les sédiments, sous forme de restes.
IN EVERY OFFICE THERE IS SOMEBODY...
Présenté par: Suivie par :
Structure d’une interface Android Un écran Android de type formulaire est généralement composé de plusieurs vues. Entre autres : TextView, ImageView titre,
1 Les Couches ISO Med amine bouricha Lycée ibn sina Le modèle OSI Open System Interconnection Les Réseaux Le modèle à 7 couches.
Présenter Par : AKBOUCHE FAYÇAL Année universitaire 2018/2019 Encadrer Par : Mr EL GANA YOUNES.
In each office there are people......
ALLPGI Est une solution complète, En ligne, sécurisé et flexible pour gérer tous les domaines d'activités de votre entreprise.
P RÉSENTATION DU RAPPORT DE PROJET DE FIN D ’ ÉTUDE Suiveur solaire suivant deux axes avec un enregistrement de data.
LE PNUD UN MEILLEUR AVENIR POUR TOUS : Réalisé par: EL ABDELAOUI EL MEHDI BOUNJEM TARIQ Encadré par: Mme MAGDOUD AMINA.
Presentation transcript:

Chapitre 3: La programmation SHELL

Chapitre 3 : La programmation SHELL 1. Définition  Le Shell est plus qu’un interpréteur de commandes: c’est également un puissant langage de programmation. Tout système d’exploitation offre cette possibilité d’enregistrer dans des fichiers des suites de commandes invoquées par la suite. Mais aucun système d’exploitation n’offre autant de souplesse que le Shell dans ce type de programmation.  Un script est un fichier texte contenant les commandes à exécuter ainsi que, éventuellement, des structures de contrôle, des boucles, des assignations des variables, des fonctions et des commentaires. L’écriture des scripts, permet à l’administrateur de simplifier la réalisation des tâches répétitives.

 Comme tout langage de programmation conventionnel, le Shell possèdent des instructions et des variables. Leurs noms et contenus sont des chaînes de caractères.  L’assignation (Bourne-Shell) d’une variable à une variable se fait par un nom; la référence à cette variable se fait par son nom précédé du caractère « $ ».  Il est également possible de créer des fichiers contenant une suite de commande, qui sont appelés les scripts et peuvent être exécutés. Chapitre 3 : La programmation SHELL 1. Définition

 Avant l’interprétation des commandes, c’est-à-dire apparition du prompt, le Bourne- Shell exécute deux fichiers d’initialisation: etc/profile et.profile. Le fichier /etc/profile est géré généralement par l’administrateur. Le fichier.profile est géré par l’utilisateur.  Ces fichiers d’initialisation permettent de modifier ou de créer des variables internes au Shell, ou des variables d’environnement, de créer des fonctions, etc. 2. Les fichiers d’initialisation Chapitre 3 : La programmation SHELL

 Le jeu d’instructions lui-même comporte: Toutes commandes Linux; L’invocation de programmes exécutables (ou de scripts) avec passage de paramètres; Des instructions d’assignation de variables; Des instructions conditionnelles ou itératives; Des instructions d’entrée-sortie. Chapitre 3 : La programmation SHELL 2. Les fichiers d’initialisation

 Création: un script étant un fichier en mode texte, il doit être crée avec un éditeur de texte.  Exécution: un script doit être exécutable, pour qu’on puisse l’exécuter par son nom.  Presque tous les langages informatiques autorisent d’insérer des commentaires; le Shell n’échappe pas à la règle. Pour cela, il suffit de faire précéder chaque ligne de commentaire du caractère « # ».  Les lignes de commentaire sont tout ignorés par l’interpréteur. Elles sont indispensables pour tout programmeur, car elles lui permettent de « commenter » son programme.  Les lignes blanches ne sont pas interprétées non plus. N’hésitez donc surtout pas à espacer votre script, les lignes blanches ne consomment presque rien en termes d’espace disque, ce n’est pas une ressource rare, et elles facilitent la lecture pour un être humain. 3. Le premier script Chapitre 3 : La programmation SHELL

 La commande echo sert à afficher un texte. Chaque ligne de texte est écrite sur une ligne à part.  Si vous voulez annuler le retour chariot qui a lieu par défaut à la fin de toute commande echo, il faut utiliser l’option –n.  Pour citer le contenu d’une variable, on ajoute le signe dollar ($) devant son nom  La commande read sert lire les variables. 4. Lecture & écriture Chapitre 3 : La programmation SHELL

Exemple1: #!bin/sh #fichier ‘’premier_script ’’ Echo –n ’’Bonjour tout le monde’’ Echo ’’On est en séance du cours programmation SHELL’’ Résultat : Bonjour tout le monde … On est en séance du cours programmation SHELL Exemple 2: #!bin/sh #fichier ‘’mon_script ’’ Echo ‘’écrivez votre nom puis votre prénom’’ Read nom prénom Echo ‘’nom: $nom’’ Echo ‘’prénom: $prénom’’ 4. Lecture & écriture Chapitre 3 : La programmation SHELL

 On peut faire passer un script un argument lors de l’invocation.  Le nombre de paramètres passés en argument à un script n’est pas limité, toutefois les neufs variables 1, …, 9 permettent de désigner ces paramètres dans le script.  La commande shift permet de faire un décalage de paramètre, ainsi $i sera désigné par $i+1. #/bin/sh #fichier « arg_shift » Echo $1 $2 $3 Shift Echo ‘apres shift’ Echo $1 $2 $3 ~ $ arg_shift Après shift … ~ $ Exemple: 5. Le passage des paramètres Chapitre 3 : La programmation SHELL

6. Les variables spéciales  En plus des variables vues précédemment, le Shell prédéfinit d’autres variables facilitent la programmation: $0Le nom de la commande (i.e: du script) $1, $2, etc Le premier, le deuxième, etc, arguments passés au script $*La liste de tous les arguments passés au script $#Le nombre d’arguments passés au script $?Le code de retour de la dernière commande lancée $!Le numéro de processus de la dernière commande lancée en tâche de fond $$Le numéro de processus du Shell lui-même Chapitre 3 : La programmation SHELL

#/bin/sh #fichier « var_sp » Echo $0 a été appelé avec $# paramètres Echo qui sont : $* ~ $ var_sp a b c d Var_sp a été appelé avec 4 paramètres Qui sont : a b c d ~ $ Exemple: Chapitre 3 : La programmation SHELL 6. Les variables spéciales

7. Les variables  La liste des variables et leur valeur est obtenue à l’aide de la commande set sans argument. Pour affecter une valeur à une variable on utilise simplement le signe «=» sans espace.  Syntaxe:  La référence d’une variable est obtenue en faisant précéder le nom par $. Ainsi «echo $nom_variable » affichera le contenue. Nom_variable=valeur ~ $ echo $Faculté FPO ~ $ Exemple: Chapitre 3 : La programmation SHELL

8. Les variables  Les commandes env ou printenv permettent de visualiser la liste et le contenu des variables d’environnements (set donne la liste de toutes les variables et leur valeur).  La commande unset nom_variable permet de supprimer une variable, sauf les variables PATH, PS1, PS2, MAILCHECK…  Certaines variables ont une signification particulière pour le Bourne-Shell. Les principales seront indiquées ci-dessous par ordre alphabétique. CDPATH: Liste des chemins d’accès utilisés par la commande cd lors d’un changement de répertoire en relatif. HOME: Indique le répertoire d’acceuil, correspond à l’argument par défaut de la commande cd. PATH: Liste des chemins d’accès contenant les commandes. Chaque chemin d’accès est séparé par le caractère « : ». Chapitre 3 : La programmation SHELL

PS1: Valeur du premier prompt (par défaut pour cet interpréteur de commandes:$). PS2: Valeur du deuxième prompt (par défaut >). TERM: Définition du type de terminal utilisé (les terminaux connus sur un système sont décrits dans le fichier /etc/termcap ou bien /usr/lib/terminfo). Voici quelques noms de terminaux:  Vt100 pour les terminaux compatibles avec ce type,  Xterm de terminal X,  Hp poste de travail HP. Chapitre 3 : La programmation SHELL 8. Les variables

8. Les instructions conditionnelles  Pour la programmation des actions conditionnelles, nous disposons de trois outils: L’instruction if; La commande test qui la complète; L’instruction case. Chapitre 3 : La programmation SHELL

 L’instruction if: présente trois variantes qui correspondent aux structures sélectives à une, deux ou n alternatives.  La sélection à une alternative: if …. Then …… fi  La sélection à deux alternatives: if …. Then …. Else …. fi  La sélection à n=3 alternatives: if …. Then …. Elif ….. Then …. Else …. If Les commandes 1 ne sont exécutées que si la condition renvoie un code retour nul ($?=0). Chapitre 3 : La programmation SHELL 8. Les instructions conditionnelles

If condition 1 Then commandes 1 Elif condition 2 Then commandes 2 …… Elif condition (n-1) Then commandes (n-1) Else Commandes n fi Chapitre 3 : La programmation SHELL 8. Les instructions conditionnelles

 La commande test: est une opération dont le but est d’évaluer la valeur d’une expression. Cette expression peut être simplement l’existence de quelque chose (par exemple, d’un fichier, ou bien d’une variable), ou peut être une proposition.  Un test renvoie un code de retour. Un code de retour est un nombre (0 ou autre), qui correspond à une réponse de type « vrai » ou « faux ». C’est ce code de retour qui permet la manipulation des tests dans les structures de contrôle comme if, etc.  Le code de retour 0 correspond à la réponse « vrai ». Pour répondre « faux », le programme répond … autre chose (peut être 1, 2, -1 ou autre).  Les expressions peuvent être niées par l’opérateur logique de négation « ! » et combinées par les opérateurs logiques ou « -o » et et logique « -a ». Chapitre 3 : La programmation SHELL 8. Les instructions conditionnelles

 Les expressions les plus utilisées sont:  Opérateurs arithmétiques: -eq (equal): égal à (signe « =»); -ne (not equal): différent de (signe « ≠ »; -gt (greater than): strictement supérieur à (signe « > »); -it (lesser than): strictement inférieur à (signe « <»); -ge (greater or equal): supérieur ou égal à (signe « ≥ »; -le (lesser ou equal): inférieur ou égal à (signe « ≤ »  Opérateurs sur les fichiers: Nature du fichier: -e (exists): vérifie l’existence d’un fichier; -f (file): vérifie l’existence d’un fichier, et le fait qu’il s’agisse bien d’un fichier au sens strict; -d (directory): vérifie l’existence d’un répertoire; -l (link): vérifie si le fichier est un lien symbolique. Chapitre 3 : La programmation SHELL 8. Les instructions conditionnelles

 Attributs du fichier: -s (size): vérifie qu’un fichier n’est pas vide.  Droits sur le fichier: - -r (readable): vérifie si un fichier peut être lu; -w (writable): vérifie si un fichier peut être écrit ou modifié; -x (executable): vérifie si un fichier peut être exécuté.  Comparaison des fichiers: -nt (newer than): vérifie si un fichier est plus récent qu’un autre; -ot (older than): vérifie si un fichier est plus ancien qu’un autre. Chapitre 3 : La programmation SHELL 8. Les instructions conditionnelles

 L’instruction case: est une instruction très puissante et très commode pour faire un choix multiple.  La boucle commence par évaluer la chaîne. Ensuite, elle va lire chaque motif. Enfin, et dès qu’une chaîne correspond au motif, elle exécute les commandes appropriées.  La chaîne peut être lue, passée en paramètre ou être le résultat d’une commande exécutée avec l’opérateur backquote (‘).  Dans les différentes chaînes motif 1 à n, on peut utiliser les caractères spéciaux (*, ?, …). De plus, pour regrouper plusieurs motifs dans une même alternative, en utilisant le caractère « | ». Chapitre 3 : La programmation SHELL 8. Les instructions conditionnelles

Case chaine in Motif 1) commandes 1;; Motifs 2) commandes 2;; *) commandes 3;; esac Exemple: #!/bin/sh echo "Entrer une couleur" read C case $C in "vert") echo "Vous pouvez passez" ;; "orange") echo "Soyez prudent" ;; "rouge") echo "Stop, vous ne pouvez pas passer" ;; *) echo "Erreur" ;; esac Chapitre 3 : La programmation SHELL 8. Les instructions conditionnelles

9. Les boucles  L’interpréteur de commandes gère trois types de constructions pour les boucles:  Pour les deux premières constructions, le fonctionnement est similaire à la commande if. Pour la boucle for, la variable prendra successivement toutes les valeurs de la liste.  Les commandes break et continue permettent de modifier le fonctionnement des boucles. La commande break est utilisée sous deux formes: Break: sort de la boucle courante; Break n: n étant un entier supérieur à 0, permet de sortir de n boucles imbriquées; continue: permet de passer à l’itération suivante sans exécuter les commandes situées après. Chapitre 3 : La programmation SHELL

While condition Do commandes done Until condition Do commandes done For var in liste Do commandes done Chapitre 3 : La programmation SHELL 9. Les boucles

10. Les fonctions  Le Shell permet de définir des fonctions appelables par le script. Cette méthodes est plus efficace que d’appeler des scripts externes car la fonction est exécutée dans le même processus.  La syntaxe de définition d’une fonction est:  Et elle est appelée par: Nom_fonction (){ Instruction 1 Instruction 2 … } Nom_fonction [paramètres] Chapitre 3 : La programmation SHELL

 Les fonctions reçoivent les paramètres d’appel dans les variables $1 à $9 et $*. La valeur de $0 reste inchangée.  Il est possible de déclarer des variables locales à une fonction en utilisant la commande locale avant la déclaration de la variable. Dans ce cas, la modification de la variable locale ne modifie pas une variable globale portant le même nom.  La commande return permet de spécifier le code de retour de la fonction. S’il n’est pas spécifié, la variable $? est initialisée au code de fin de la dernière commande de la fonction.  Le Shell supporte les appels récursifs de fonctions. Comme tout langage récursif, il faut faire très attention aux effets de bord et aux variables non déclarées en local. Chapitre 3 : La programmation SHELL 10. Les fonctions

#/bin/sh #je définis une première fonction Ecrire_sur_une_ligne(){ Echo –n$* } #je définis une deuxième fonction qui appelle la première Saluer_utilisateur(){ Ecrire_sur_une_ligne ’’Bonjour ’’ Echo $USER } Chapitre 3 : La programmation SHELL 10. Les fonctions

Bon courage et bonne chance à tous Pr. ABDELLAOUI Chapitre 3 : La programmation SHELL