Programmation shell. ensemble de commandes dans un fichier ayant éventuellement des paramètres nom de la commande = nom du fichier = script shell

Documents pareils
Environnements informatiques

TP1 - Prise en main de l environnement Unix.

Introduction aux Systèmes et aux Réseaux

Aide-Mémoire unix. 9 février 2009

Algorithmique et Programmation, IMA


1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Plan du cours. Historique du langage Nouveautés de Java 7

Corrigé des TD 1 à 5

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Cours Informatique Master STEP

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Premiers pas en Linux

1. Structure d'un programme FORTRAN 95

sshgate Patrick Guiran Chef de projet support

Introduction à MATLAB R

Java Licence Professionnelle CISII,

Cours d algorithmique pour la classe de 2nde

Année Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

Contents. 1 Premiers pas en Linux. 1.2 Généralités. 1.1 Bref historique Linux

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Organigramme / Algorigramme Dossier élève 1 SI

TP 1 Prise en main de l environnement Unix

Premiers pas. Shell? Les processus vu comme des filtres. commandes

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Premiers Pas en Programmation Objet : les Classes et les Objets

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Introduction à l Administration Systèmes et Réseaux

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

TD3: tableaux avancées, première classe et chaînes

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Découverte de Python

Client windows Nagios Event Log

Programme Compte bancaire (code)

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot

TP1 : Initiation à l algorithmique (1 séance)

INF 321 : mémento de la syntaxe de Java

Première partie. Qu est-ce qu un script?

TP1. Outils Java Eléments de correction

Vue d ensemble de Windows PowerShell

STAGE IREM 0- Premiers pas en Python

ACTIVITÉ DE PROGRAMMATION

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction au Système d Exploitation Unix/Linux

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours Unix 1. Présentation d UNIX. Plan du cours 1

netmonk security blog

Perl Orienté Objet BioPerl There is more than one way to do it

CQP ADMINISTRATEUR DE BASES DE DONNÉES (ABD)

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Examen Médian - 1 heure 30

Bases de programmation. Cours 5. Structurer les données


URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

as Architecture des Systèmes d Information

Sauvegarde sous MAC avec serveur Samba

Outils pour la pratique

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Programme awk------introduction rapide

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Cours d initiation à la programmation en C++ Johann Cuenin

Gestion Electronique de Document (ECM/GED)

Licence Sciences et Technologies Examen janvier 2010

PowerShell. Référence. Windows. Tyson Kopczynski. Réseaux et télécom. Programmation. Génie logiciel. Sécurité. Système d exploitation

Cours Informatique 1. Monsieur SADOUNI Salheddine

Le prototype de la fonction main()

td3a correction session7az

TRIGONOMETRIE Algorithme : mesure principale


TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Initiation à la programmation en Python

Les Boitiers de Vote Electroniques (Clickers)

Cours Programmation Système

Programmation système en C/C++

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Génie Logiciel avec Ada. 4 février 2013

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Projet Administration Réseaux

Programmer en JAVA. par Tama

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Python Les fondamentaux du langage

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Introduction au langage C

Polycopié Cours Système d Exploitation I. Programme : Filière SMI S3

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Oracle 11g. Installation et administration. Claude Duvallet 1/36

Gestion mémoire et Représentation intermédiaire

La mémoire. Un ordinateur. L'octet. Le bit

Calcul Formel et Numérique, Partie I

Les processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)

Tout d abord les pré-requis : Au menu un certain nombre de KB

Programmation C++ (débutant)/instructions for, while et do...while

2 Formation utilisateur

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Transcription:

. p.1/29 Programmation shell ensemble de commandes dans un fichier ayant éventuellement des paramètres nom de la commande = nom du fichier = script shell paramètres repérés par leur position quand on appelle la commande les commandes sont regroupées par une syntaxe de langage de commandes plusieurs langages plusieurs syntaxes regroupées en 2 familles les Bourne Shells (sh,ksh,,bash) les C-Shells (csh,tcsh))

. p.2/29 Ordre des opérations 1. Ouvrir un fichier texte et mettre en 1 choisi 2. Ecrire la commande 3. La rendre exécutable : chmod a+x votre commande ligne le shell

. p.3/29 Exemple $cat cmd1.sh date echo "Catalogue accueil =" $HOME echo "Catalogue de travail = \c" ; pwd echo "Nombre de fichiers = " ; ls wc -l $chmod a+x cmd1.sh $cmd1.sh

. p.4/29 Variables utilisateurs On peut créer des variables V par affectation et les utiliser avec $ V Manipulation des expressions arithmétiques avec expr C="abc" N=12 echo "variable C = " ${C} echo "variable N = " ${N} echo "variable N+1 = \c" ; expr ${N} + 1 N= expr ${N} + 10 echo "variable N apres N=N+10= " ${N}

. p.5/29 Variables prédéfinies $*: liste des paramètres $#: nb de paramètres (sans le nom de la commande) $$: n processus en cours $!: n du dernier processus en background $?: code retour de la dernière commande exécutée

. p.6/29 Exemples $cat cmd2.sh echo "Nombre de parametres = " $# echo "Parametre numero 0 = " $0 echo "Parametre numero 1 (nom du catalogue) = " $1 echo echo "No du processus en cours ($0) = $$" pwd & echo "No du dernier processus en background (pwd)= $!" echo date echo "Nombre de fichiers dans le catalogue $1 = " ; ls $1

. p.7/29 Exemples $cat cmd3.sh ls echo "exemple code de retour OK (ls)= $? " ls toto echo "exemple code de retour KO = $? "

. p.8/29 Guillements, apostrophes and co exp : exp est évaluée dans un sous-shell (ou processus fils) exp : protège exp d une évaluation exp1 exp2 : protège exp1 exp2 d une évaluation et les considère comme un seul argument

. p.9/29 Exemples COMMANDE echo a b 2 arguments: a et b COMMANDE " echo a b " 1 argument : "a b" COMMANDE echo pas d argument COMMANDE " echo " un argument vide

. p.10/29 La commande test Syntaxe test exp ou [exp]; Elle permet : de réaliser des tests de restituer le résultat sous la forme d un code retour (=0 si OK, 0 sinon) Quelques exemples de exp : -r fichier : vrai si on peut lire dans fichier -x fichier : vrai si on peut l exécuter -d fichier : vrai si répertoire -n c1 : vrai chaine non nulle c1 = c2 : vrai si c1 = c2 c1!= c2 : vrai si c1 c2

. p.11/29 Entrée standard Par la commande Exemples : read variable read v echo $v

. p.12/29 Commandes exec et eval En sh exec commande eval commande exec : commande s exécute en remplaçant le processus courant eval : commande est interprétée puis le résultat de l interprétation est exécuté

. p.13/29 Exemple exec read cmd exec $cmd # Tout ce aui suit ne sera pas exécuté # car le code de $cmd a remplacé celui ci echo ligne 1 echo ligne 2 echo ligne 3

. p.14/29 Exemple eval read cmd # supposons que l utilisqteur saisisse "cmd1.sh" # Exemple # 1) interpretation de "file $cmd" --> file cmd1.sh # 2) execution de file cmd1.sh eval "file $cmd" # Ce qui suit est exécuté echo ligne 1 echo ligne 2 echo ligne 3

. p.15/29 Sélection if...then...else...fi Syntaxe : if <liste de commandes 1> then <liste de commandes 2> else <liste de commandes 3> fi

. p.16/29 Exemples $cat cmd6.sh # if ( test $# = 0 ) then ou if [ $# = 0 ]; then echo "Il n y a pas de parametres" else echo "il y a $# parametres" fi

. p.17/29 Aiguillages case...in...esac Syntaxe : case <chaine> in <motif> ) <liste de commandes> ;; <motif> ) <liste de commandes> ;;.................. esac

. p.18/29 Exemples $cat cmd7.sh case $# in 0) pwd ;; 1) if( test -f $1 ) then cat $1 else echo "fichier $1 inexistant" fi ;; 2) if( test -f $2 ) then echo "fichier $2 existant" else cat $1 > $2 fi ;; *) echo "2 parametres attendus (au lieu de $# [$*])";; esac

. p.19/29 Itération bornée for in/foreach...do...done/end Syntaxe : en sh, ksh for variable [ in variableliste... ] ; do actions ; d en csh, tcsh foreach variable ( variableliste ) end

. p.20/29 Exemples En sh, bash for file in * ; do file $file ; done En csh, tcsh #!/usr/bin/csh foreach file ( * ) file $file end

. p.21/29 Itération non bornée 1/2 while...do...done/end Syntaxe : en sh, ksh while [ conditions ] ; do actions ; done until [ conditions ] ; do actions ; done en csh, tcsh while ( conditions ) [... ] # do actions end

. p.22/29 Exemples i=1 while (test expr $i \<= $# -eq 1 ) ; do eval "echo parametre $i = \$$i " ; i= expr $i + 1 ; done

. p.23/29 Opérateur shift Décalage logique à gauche des paramètres On s en sert souvent pour parcourir la liste des paramètres Exemples while ( test expr $# -gt 0 ) ; do echo " " $1 shift done

. p.24/29 La récursion Les procédures shell peuvent s appeler elles-mêmes; Exemple: $cat cmd13.sh fic=$1 dir=$2 cd $dir if( test -f $fic ) then echo "Le fichier est dans le repertoire \c" ; pwd exit 0 fi for i in * ; do if( test -d $i ) then $HOME/cmd13.sh $fic $i ; fi ; done

. p.25/29 Les fonctions Syntaxe: la-fonction () {... } Appel comme une commande shell : la-fonction arg1 arg2 Accès aux paramètres par $1 à $9 Retour de résultat return [valeur numérique] accès par $? ou comme retour de fonction standard Peut redéfinir les commandes Unix sauf les commande spéciales echo exit export pwd read test...

. p.26/29 Exemple arguments() { echo " fonction arguments : $*" } echo " dans le shell : $*" arguments "hello world"

. p.27/29 Variables globales Par la commande export, on peut rendre des variables name accessibles aux sous-shells Exemple Dans la le prg appelant : var1=coucou echo " " echo "Dans cmd15_1.sh" echo $var1 export var1 cmd15_2.sh Dans le prg appelé echo "Dans cmd15_2.sh" echo $var1

. p.28/29 Tableaux en bash Dans le shelle bash on peut utliser des variables de type tableau à 1 dimension de chaînes de caractères 1 élément commence à 0 l indice * donne tous les éléments

. p.29/29 Exemple #!/usr/bin/bash declare -a Tab #facultatif Tab=(il fait beau) echo $Tab[1] echo ${Tab[1]} echo ${Tab[*]} echo ${#Tab[*]}