Introduction UNIX 6 eme leçon



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

Environnements informatiques

Corrigé des TD 1 à 5

TP1 - Prise en main de l environnement Unix.

Le prototype de la fonction main()

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

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

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

Examen Médian - 1 heure 30

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Compilation (INF 564)

Outils pour la pratique

STAGE IREM 0- Premiers pas en Python

Cours Informatique Master STEP

Présentation du langage et premières fonctions

sshgate Patrick Guiran Chef de projet support

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

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

1. Structure d'un programme FORTRAN 95

Programme awk------introduction rapide

TP 1 Prise en main de l environnement Unix

Cours 1 : La compilation

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Atelier La notion de session utilisateur sous Linux

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)

Les clients GNU/Linux

Programmation C. Apprendre à développer des programmes simples dans le langage C

Informatique I. Sciences et Technologies du Vivant (Semestre 1)

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

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

ftp & sftp : transférer des fichiers

TP 1. Prise en main du langage Python

ACTIVITÉ DE PROGRAMMATION

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Installation d ORACLE 10g sous Debian Etch

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Certificats Electronique d AE sur Clé USB

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Chapitre 5 : Les procédures stockées PL/SQL

Algorithmique et Programmation, IMA

Guide d'installation de la base de données ORACLE 10g ( ) pour linux FEDORA CORE 4.

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Q-Checker pour V6 Release 2.1

C.M. 1 & 2 : Prise en main de Linux

Introduction au Système d Exploitation Unix/Linux

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Python Les fondamentaux du langage

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

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

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

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

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

Manuel du logiciel PrestaTest.

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

1 Introduction - Qu est-ce que le logiciel R?

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Introduction aux Systèmes et aux Réseaux

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

TP 1 Introduction à Matlab Février 2009

Simple Database Monitoring - SDBM Guide de l'usager

eps Network Services Alarmes IHM

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Serveur Subversion Debian GNU/Linux

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

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

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

Initiation à la programmation OEF pour Wims (exercices).

Protocoles DHCP et DNS

Les arbres binaires de recherche


L informatique en BCPST

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Les Audits. 3kernels.free.fr 1 / 10

Organigramme / Algorigramme Dossier élève 1 SI

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Vue d ensemble de Windows PowerShell

Introduction à l algorithmique et à la programmation M1102 CM n 3

Testez votre installation. Créer un répertoire vide

Visual Basic for Applications

Comment configurer Kubuntu

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

Cours 1 : Qu est-ce que la programmation?

Techniques de Programmation pour Internet

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Projet de programmation (IK3) : TP n 1 Correction

Les commandes de base de LINUX

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

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

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Maple: premiers calculs et premières applications

Table des matières Hakim Benameurlaine 1

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Transcription:

Introduction UNIX 6 eme leçon Jürgen Brunner CPPM Session TP Rappel leçon 5 Solutions TP5 Function recursive

Rappel leçon 5 Variables Reference indirect Manipuler caractères dans les variables Tableaux Fonctions bc : arithmétique au-delà des entiers

Etapes de travail 1. Conception 1. Quels outils à utiliser 2. Définitions des étapes de solutions 2. Écriture de code 3. Tester et déverminer 4. Boucler sur 2 et 3

Test script #!/bin/bash for f in */param.bash do echo -n "+++ $f ++++++ " $f $@ <<EOD 1 EOD done

no parameters +++ benzenine/param.bash ++++++ Donner au moins un paramètre +++ diagne/param.bash ++++++ diagne/param.bash: line 3: [: -lt: unary operator expected Le nombres de parametres est: 0 Le premier de à lã ment est: +++ garreauteiki/param.bash ++++++????? +++ Grimaldos/param.bash ++++++ Veuillez entrer au moins un argument svp +++ gueye/param.bash ++++++ pas assez d'argument +++ hubac/param.bash ++++++ Pas assez d'arguments +++ kazi/param.bash ++++++ Donnez un parametre SVP +++ lopez/param.bash ++++++ lopez/param.bash: line 9: syntax error near unexpected token `then' lopez/param.bash: line 9: ` then echo le dixieme argument est $10' +++ mechouahi/param.bash ++++++ pas d argument +++ Sabir_Abidi/param.bash ++++++ liste darguments +++ seye/param.bash ++++++ veuillez donnez un argument au moins +++ touatiilies/param.bash ++++++ donner au moins un argument +++ toutendji_yoann/param.bash ++++++ Il y a 0 arguments Le premier argument est: +++ Velly_Philippe/param.bash ++++++ liste darguments +++ Violette/param.bash ++++++ Veuillez entrer au moins 1 argument la prochaine fois +++ WEISS/param.bash ++++++ Veuillez spécifier un argument

10 parameters +++ benzenine/param.bash ++++++ le nombre dargument = 10 le premier argument est : a le dixième argumet est: j +++ diagne/param.bash ++++++ diagne/param.bash: line 3: [: a: integer expression expected Le nombres de parametres est: 10 Le premier de à lã ment est: a Dixià me parametres j +++ garreauteiki/param.bash ++++++ il y a 10 argument(s) le premier argument est: a le dixieme argument est: j +++ Grimaldos/param.bash ++++++ Le premier argument est a Nb d'arguments = 10 Le dixième argument est a0 +++ gueye/param.bash ++++++ nombre d'arguments : 10 premier argument : a 10eme argument : +++ hubac/param.bash ++++++ Nombre d'arguments : 10 Valeur du premier argument : a Valeur du dixième argument : j +++ kazi/param.bash ++++++ le Nbr des arguments est : 10 le premier argument est : a le dixieme argument est : j +++ lopez/param.bash ++++++ lopez/param.bash: line 9: syntax error near unexpected token `then' lopez/param.bash: line 9: ` then echo le dixieme argument est $10'

10 parameters +++ mechouahi/param.bash ++++++ nombre d'argument 10 1) a 10) j +++ Sabir_Abidi/param.bash ++++++ nombre arguments: 10 premier argument a paramaitre numero 10: j +++ seye/param.bash ++++++ nombre d'arguments: 10 premiere argument: a dixieme argument: j +++ touatiilies/param.bash ++++++ le nombre darguments = 10 Le premier argument est : a Le dixieme argument est : j +++ toutendji_yoann/param.bash ++++++ Il y a 10 arguments Le premier argument est:a Le dixieme argument est:j +++ Velly_Philippe/param.bash ++++++ le premier argument est a le deuxiemme argument est b il y a 10 +++ Violette/param.bash ++++++ Il y a 10 arguments Le premier argument est a Le dixième argument est a0 +++ WEISS/param.bash ++++++ Nombre d'arguments=10 Argument 1) a, Argument 10) j,

1 parameter invalid +++ benzenine/param.bash ++++++ erreur:ce paramètre n'existe pas benzenine/param.bash: line 17: exit1: command not found benzenine/param.bash: line 19: [: -h/$: unary operator expected benzenine/param.bash: line 22: [: -d/$: unary operator expected +++ diagne/param.bash ++++++ diagne/param.bash: line 3: [: a: integer expression expected +++ garreauteiki/param.bash ++++++ inconnu au bataillon +++ Grimaldos/param.bash ++++++ Le premier argument est a Le fichier/dossier que vous cherchez n'existe pas +++ gueye/param.bash ++++++ nombre d'arguments : 1 erreur a n'existe pas dans la racine / +++ hubac/param.bash ++++++ Nombre d'arguments : 1 /a n'existe pas +++ kazi/param.bash ++++++ le Nbr des arguments est : 1 erreur : ce parametre n'esxiste pas +++ lopez/param.bash ++++++ lopez/param.bash: line 9: syntax error near unexpected token `then' lopez/param.bash: line 9: ` then echo le dixieme argument est $10'

1 parameter invalid +++ mechouahi/param.bash ++++++ nombre d'argument 1 ls: a: No such file or directory +++ Sabir_Abidi/param.bash ++++++ nombre arguments: 1 premier argument a ls: /a: No such file or directory +++ seye/param.bash ++++++ nombre d'arguments: 1 +++ touatiilies/param.bash ++++++ le nombre darguments = 1 erreur : ce parametre n'existe pas +++ toutendji_yoann/param.bash ++++++ Il y a 1 arguments a n'existe pas +++ Velly_Philippe/param.bash ++++++ le premier argument est a ls: /a: No such file or directory +++ Violette/param.bash ++++++ Il y a 1 arguments Votre fichier/dossier n'existe pas +++ WEISS/param.bash ++++++ Nombre d'arguments=1 ls: a: No such file or directory ls: a: No such file or directory Ca marche pas

1 parameter : file +++ benzenine/param.bash ++++++ le nombre dargument = 1 erreur:ce paramètre n'existe pas benzenine/param.bash: line 17: exit1: command not found benzenine/param.bash: line 19: [: -h/$: unary operator expected benzenine/param.bash: line 22: [: -d/$: unary operator expected +++ diagne/param.bash ++++++ diagne/param.bash: line 3: [:.autofsck: integer expression expected +++ garreauteiki/param.bash ++++++ C est un fichier +++ Grimaldos/param.bash ++++++ Le premier argument est.autofsck Le fichier/dossier que vous cherchez existe +++ gueye/param.bash ++++++ nombre d'arguments : 1 +++ hubac/param.bash ++++++ Nombre d'arguments : 1 /.autofsck existe +++ kazi/param.bash ++++++ le Nbr des arguments est : 1 erreur : ce parametre n'esxiste pas +++ lopez/param.bash ++++++ lopez/param.bash: line 9: syntax error near unexpected token `then' lopez/param.bash: line 9: ` then echo le dixieme argument est $10'

1 parameter : file +++ mechouahi/param.bash ++++++ nombre d'argument 1 -rw-r--r-- 1 root root 0 Oct 9 08:39.autofsck erreur +++ Sabir_Abidi/param.bash ++++++ nombre arguments: 1 largument est un fichier coco +++ seye/param.bash ++++++ nombre d'arguments: 1 +++ touatiilies/param.bash ++++++ le nombre darguments = 1 +++ toutendji_yoann/param.bash ++++++ Il y a 1 arguments.autofsck est un fichier +++ Velly_Philippe/param.bash ++++++ le premier argument est.autofsck argument est un fichier coco +++ Violette/param.bash ++++++ Il y a 1 arguments Votre fichier/dossier a été trouvé +++ WEISS/param.bash ++++++ Nombre d'arguments=1 -rw-r--r-- 1 root root 0 Oct 9 08:39.autofsck Ca marche -rw-r--r-- 1 root root 0 Oct 9 08:39.autofsck

1 parameter : link +++ benzenine/param.bash ++++++ le nombre dargument = 1 erreur:ce paramètre n'existe pas benzenine/param.bash: line 17: exit1: command not found benzenine/param.bash: line 19: [: -h/$: unary operator expected benzenine/param.bash: line 22: [: -d/$: unary operator expected +++ diagne/param.bash ++++++ diagne/param.bash: line 3: [: cern: integer expression expected +++ garreauteiki/param.bash ++++++ **** c est un lien symbolique **** +++ Grimaldos/param.bash ++++++ Le premier argument est cern Le fichier/dossier que vous cherchez existe Cet argument est un lien symbolique +++ gueye/param.bash ++++++ nombre d'arguments : 1 ce fichier existe et c'est un lien soft +++ hubac/param.bash ++++++ Nombre d'arguments : 1 /cern existe /cern est un lien soft +++ kazi/param.bash ++++++ le Nbr des arguments est : 1 erreur : ce parametre n'esxiste pas +++ lopez/param.bash ++++++ lopez/param.bash: line 9: syntax error near unexpected token `then' lopez/param.bash: line 9: ` then echo le dixieme argument est $10'

1 parameter : link +++ mechouahi/param.bash ++++++ nombre d'argument 1 lrwxrwxrwx 1 root root 15 Oct 2 2007 cern -> /atlinux/cernsl erreur +++ Sabir_Abidi/param.bash ++++++ nombre arguments: 1 largument est un lien symbol +++ seye/param.bash ++++++ nombre d'arguments: 1 Nous avons un lien symbolique +++ touatiilies/param.bash ++++++ le nombre darguments = 1 ce parametre est un lien symbolique +++ toutendji_yoann/param.bash ++++++ Il y a 1 arguments cern est un lien +++ Velly_Philippe/param.bash ++++++ le premier argument est cern argument est un lien symbol +++ Violette/param.bash ++++++ Il y a 1 arguments Votre fichier/dossier a été trouvé C'est un lien symbolique +++ WEISS/param.bash ++++++ Nombre d'arguments=1 lrwxrwxrwx 1 root root 15 Oct 2 2007 cern -> /atlinux/cernsl Ca marche lrwxrwxrwx 1 root root 15 Oct 2 2007 cern -> /atlinux/cernsl

1 parameter : repertoire +++ benzenine/param.bash ++++++ le nombre dargument = 1 erreur:ce paramètre n'existe pas benzenine/param.bash: line 17: exit1: command not found benzenine/param.bash: line 19: [: -h/$: unary operator expected benzenine/param.bash: line 22: [: -d/$: unary operator expected +++ diagne/param.bash ++++++ diagne/param.bash: line 3: [: var: integer expression expected +++ garreauteiki/param.bash ++++++ c est un repertoire on a pas les droits d ecritutre +++ Grimaldos/param.bash ++++++ Le premier argument est var Le fichier/dossier que vous cherchez existe Cet argument est un répertoire Il est impossible d'écrire dedans +++ gueye/param.bash ++++++ nombre d'arguments : 1 ce fichier existe et c'est un repertoire impossible d'ecrire dans ce repertoire +++ hubac/param.bash ++++++ Nombre d'arguments : 1 /var existe /var est un répertoire /var n'est pas autorisé en écriture +++ kazi/param.bash ++++++ le Nbr des arguments est : 1 erreur : ce parametre n'esxiste pas +++ lopez/param.bash ++++++ lopez/param.bash: line 9: syntax error near unexpected token `then' lopez/param.bash: line 9: ` then echo le dixieme argument est $10'

1 parameter : repertoire +++ mechouahi/param.bash ++++++ nombre d'argument 1 total 140... erreur +++ Sabir_Abidi/param.bash ++++++ nombre arguments: 1 largument est un Repertoire +++ seye/param.bash ++++++ nombre d'arguments: 1 nous avons un repertoire +++ touatiilies/param.bash ++++++ le nombre darguments = 1 ce parametre est un repertoire on ne peut pas ecrire dans ce repertoire rm: cannot remove `temp': No such file or directory +++ toutendji_yoann/param.bash ++++++ Il y a 1 arguments Impossible d'ecrire dans le repertoire var +++ Velly_Philippe/param.bash ++++++ le premier argument est var argument est un Repertoir +++ Violette/param.bash ++++++ Il y a 1 arguments Votre fichier/dossier a été trouvé C'est un répertoire Il est impossible d'écrire dedans +++ WEISS/param.bash ++++++ Nombre d'arguments=1 total 140... Ca marche total 140

1 parameter : repertoire /tmp +++ benzenine/param.bash ++++++ le nombre dargument = 1 erreur:ce paramètre n'existe pas benzenine/param.bash: line 17: exit1: command not found benzenine/param.bash: line 19: [: -h/$: unary operator expected benzenine/param.bash: line 22: [: -d/$: unary operator expected +++ diagne/param.bash ++++++ diagne/param.bash: line 3: [: tmp: integer expression expected +++ garreauteiki/param.bash ++++++ c est un repertoire On peut y à crire +++ Grimaldos/param.bash ++++++ Le premier argument est tmp Le fichier/dossier que vous cherchez existe Cet argument est un répertoire on peut écrire dedans +++ gueye/param.bash ++++++ nombre d'arguments : 1 ce fichier existe et c'est un repertoire on peut ecrire de ce repertoire +++ hubac/param.bash ++++++ Nombre d'arguments : 1 /tmp existe /tmp est un répertoire /tmp est autorisé en écriture +++ kazi/param.bash ++++++ le Nbr des arguments est : 1 erreur : ce parametre n'esxiste pas +++ lopez/param.bash ++++++ lopez/param.bash: line 9: syntax error near unexpected token `then' lopez/param.bash: line 9: ` then echo le dixieme argument est $10'

1 parameter : repertoire /tmp +++ mechouahi/param.bash ++++++ nombre d'argument 1 total 15376... erreur +++ Sabir_Abidi/param.bash ++++++ nombre arguments: 1 largument est un Repertoire +++ seye/param.bash ++++++ nombre d'arguments: 1 nous avons un repertoire +++ touatiilies/param.bash ++++++ le nombre darguments = 1 ce parametre est un repertoire On peut ecrire dans ce repertoire rm: cannot remove `temp': No such file or directory +++ toutendji_yoann/param.bash ++++++ Il y a 1 arguments Possible d'ecrire dans le repertoire tmp +++ Velly_Philippe/param.bash ++++++ le premier argument est tmp argument est un Repertoir +++ Violette/param.bash ++++++ Il y a 1 arguments Votre fichier/dossier a été trouvé C'est un répertoire On peut écrire dedans +++ WEISS/param.bash ++++++ Nombre d'arguments=1 total 15376... Ca marche total 15376...

Solutions TP5

Résultat du logiciel légèrement erronée Lancement de Mariner 1 22 juillet 1962 Destination : Venus Logiciel pour corriger le trajet avez un minuscule bug Fuseau a été du détruit Rumeur DO 10 I=1,3 10 CONTINUE DO 10 I=1.3 10 CONTINUE

Fonction récursive #!/usr/bin/bash fac() { if [ $1 -le 1 ] ; then RESUL=1 else fac $(($1-1)) ((RESUL*=$1)) fi } if [ $# -eq 0 ] ; then echo specify number exit 1 fi fac $1 echo "factoriel $1 = $RESUL" exit 0 Example : calcul du factoriel Fonction fac() appellé récursive Variable RESUL accessible globalement Ca marche jusqu a 12 a cause du taille du résultat (32 bits)