0% ont trouvé ce document utile (0 vote)
308 vues7 pages

Exercices de Script Shell 2007

Transféré par

mokido
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
308 vues7 pages

Exercices de Script Shell 2007

Transféré par

mokido
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP Script-Shell 2007

Anthony DESVERNOIS GCONFS 11 octobre 2007

Table des matires


I II Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pallier 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A B C D III A B IV A B V A B C D Exercice 1 : [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 2 : print_args.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 3 : [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 4 : [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 1 : [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 2 : [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 1 : list_dir.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 2 : list_dir2.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 1 : [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 2 : [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 3 : [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . Pallier 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 1 2 2 2 2 3 3 3 4 4 4 5 5 5

Pallier 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pallier 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pallier 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Introduction
Ce petit sujet est dcoup en plusieurs pallier. Ces palliers sont de difcults croissantes. Russir les trois premiers palliers dmontre de bonnes bases de script-shell, le pallier 4 des

bases avances, et le 5 un bon niveau en script-shell. Essayer de faire les exercices dans lordre et en cas de problme : Regarder dans les slides Regarder sur google Man sh Eventuellement, demandez un assistant. Bon courage. . .

II
A

Pallier 1
Exercice 1 : [Link]
Vous devez raliser un simple scripts sh qui afche Hello World! sur la sortie standard. Vous pouvez utiliser uniquement la built-in echo.

Exercice 2 : print_args.sh
Vous devez raliser un scripts sh qui afche les arguments passs votre script sur la sortie

standard. Exemple :
42 sh$ . / p r i n t _ a r g s . sh un p e t i t t e s t un petit test 42 sh$

Vous devez utiliser echo, test et shift.

Exercice 3 : [Link]
Vous devez afcher le nombre darguments passs votre script. Si aucun argument nest

pass au script, vous ne devez rien afcher et votre programme doit retourner 1. Exemple :
42 sh$ . / e r r . sh un p e t i t t e s t 3 42 sh$ echo $ ? 0 42 sh$ . / e r r . sh 42 sh$ echo $ ? 1 42 sh$

Vous devez utiliser echo, test et exit.

Exercice 4 : [Link]
Vous devez afcher la longueur de largument pass en premier paramtre votre script. Si aucun argument nest pass votre script, celui-ci doit renvoyer 1. Vous devez utiliser echo, test, exit et ventuellement wc. Exemple :

42 sh$ . / s t r l e n . sh bouh 4 42 sh$ echo $ ? 0 42 sh$ . / s t r l e n . sh

Association loi 1901 GCONFS

[Link]

42 sh$ echo $ ? 1 42 sh$

III
A

Pallier 2
Exercice 1 : [Link]

Vous devez crer un script qui afche les 100 premiers chiffres impaires sur la sortie standard, et sur une seule ligne, spar par des virgules. Exemple :
42 sh$ . / c e n t i m p a i r e s . sh 1 ,3 ,5 42 sh$ echo $ ? 0 42 sh$

Vous devez utiliser echo et test.

Exercice 2 : [Link]
Vous devez crer un script qui afche les n premiers chiffres impaires sur la sortie standard,

o n est le premier argument pass votre script. Si le nombre darguments passs est diffrents de 1 vous devez suivre le comportement dcrit dans lexemple ce-dessous. Si largument 1 nest pas un nombre, suivez lexemple (aussi).
42 sh$ . / nimpaires . sh 2 1 3 42 sh$ echo $ ? 0 42 sh$ . / nimpaires . sh usage : nimpaires n 42 sh$ echo $ ? 1 42 sh$ . / nimpaires . sh b l a b l a nimpaires : " b l a b l a " i s not a number . 42 sh$ echo $ ? 2 42 sh$ . / nimpaires . sh 2 3 usage : nimpaires n 42 sh$ echo $ ? 1 42 sh$ . / nimpaires . sh b l a b l a 3 usage : nimpaires n

Association loi 1901 GCONFS

[Link]

42 sh$ echo $ ? 1 42 sh$ echo $ ?

Vous tes libre dutiliser les fonctions que vous souhaiter. Man grep et man regexp peuvent tre utile.

IV
A

Pallier 3
Exercice 1 : list_dir.sh

Vous devez lister sur la sortie standard lensemble des dossiers du rpertoire o se trouve le script. Exemple :
42 sh$ l s l drwx x x drwx x x drwx x x desver_a desver_a desver_a desver_a desver_a epita_2010 epita_2010 epita_2010 epita_2010 epita_2010 42 42 42 42 42 test test2 test3 fichier fichier2

rwr r rwr r
test test2 test3 42 sh$

42 sh$ . / l i s t _ d i r . sh

Vous devez utiliser echo, test et ls.

Exercice 2 : list_dir2.sh
Vous devez lister sur la sortie standard lensemble des dossiers du rpertoire indiqu en argu-

ment au script. Plusieurs arguments peuvent tre donn. Si un des dossier nexiste pas, vous devez afcher "dir : not found." (dir doit tre remplac par le nom du dossier), et continuer normalement son execution. Si un des dossier ne peux tre lu, vous devez afcher "dir : access denied." (dir doit tre remplac par le nom du dossier). Si un des dossier nen est pas un, vous devez afcher "dir : not a directory." (dir doit tre remplac par le nom du dossier). Si un problme a t rencontr durant lexecution de votre script, vous devez retourner 1 la n de celui-ci. Sinon, vous devez retourn 0. Vous devez utiliser echo, shift, test et ls.

Association loi 1901 GCONFS

[Link]

V
A

Pallier 4
Exercice 1 : [Link]
Vous devez une fonction facto ainsi quun script qui, lorsquil est appel avec en entier positif

n (premier argument), retourne le rsultat de !n. Si les paramtres dappels sont invalides, vous devez retourner -1. Exemple :
42 sh$ . / f a c t o . sh 0 42 sh$ echo $ ? 1 42 sh$ . / f a c t o . sh 2 42 sh$ echo $ ? 2 42 sh$ . / f a c t o . sh 2 42 sh$ echo $ ?

1
42 sh$

Vous tes libre dutiliser les fonctions que vous souhaiter.

Exercice 2 : [Link]
Vous devez coder une fonction qui prend un seul et unique argument n ( 3) et qui construit

un sapin. La largeur du tronc doit etre de 1, peu importe la longueur.

Exercice 3 : [Link]
Vous devez coder un script qui lance vos scripts en fonction des options qui lui sont pass. Le programme renvoit la valeur maximum rencontre lors de lexecution de vos scripts. Le parseur ne sarrete que sil rencontre une erreur de parsing. Si un de vos scripts nest pas accessible (inexistant, mauvais droits), il continue mais devras

retourner -1. Exemple :


42 sh$ . / pseudopar se . sh s 4 e r r . sh un p e t i t t e s t s c r i p t = l i s t _ d i r 2 . sh / e t c / s g o i n f r e param=2 un petit test [ l i s t _ d i r 2 de / e t c ] [ l i s t _ d i r 2 de / s g o i n f r e ] 42 sh$ echo $ ? 0 42 sh$ . / pseudopar se . sh s 4 e r r . sh un p e t i t t e s t s c r i p t = e r r . sh / e t c / s g o i n f r e param=0

Association loi 1901 GCONFS

[Link]

un petit test 42 sh$ echo $ ? 1 42 sh$ . / pseudopar se . sh s 3 e r r . sh P ar s e e r r o r ! 42 sh$ echo $ ? 1 42 sh$ . / pseudopar se . sh s 0 bou . sh bou . sh : E r r o r ! 42 sh$ echo $ ?

Vous pouvez utiliser ce que vous voulez. Jettez un coup doeil cut.

Pallier 5
Coder vous une moulinette an de tester vos exercices. Pour info, une moulinette compare votre travail une sortie de rfrence. Jetter un coup doeil

diff (et loption -u). Essayer de faire un dossier avec vos tests, un dossier avec les sorties de rfrence, un dossier pour contenir votre sortie, et une jolie moulinette qui vrie tout cela en afchant des OK, NOK (ou fail), des dtails sur ce qui a chou. . . Ici, vous navez pas de programme de rfrence, il va donc falloir imaginer les cas foireux vous mme, et crire les sorties attendues avec vos doigts. Enn, il est possible de mettre de la couleur dans vos scripts. Google est votre ami. Bon courage.

Association loi 1901 GCONFS

[Link]

Vous aimerez peut-être aussi