Aller au contenu

Administration Unix - TP séance 05

À la fin de la séance, déposez votre fichier de réponses sur la page Ametice en suivant bien les instructions, même si vous n'avez pas fini la planche ; lorsque vous aurez terminé, vous pourrez re-déposer la version finale.

Exercice 1 : un premier script

a) Recopiez le script hello.sh du cours et testez-le.

b) Invoquez le script en lui passant un argument ; le texte affiché est-il modifié ?

c) Recopiez le script en exo51.sh, et modifiez-le de telle sorte que

  • sans argument, il affiche la même chose

    $ ./exo51.sh
    Hello world!
    
  • avec un argument, il affiche de cette manière :

    $ ./exo51.sh Paul
    Hello Paul !
    $ ./exo51.sh Jacques
    Hello Jacques !
    

Exercice 2 : tests de fichiers

a) Que fait le script exo52.sh suivant ? Recopiez-le et testez-le.

#! /bin/bash

file=$1
if test -e "$file" ; then
    echo "$file existe"
fi

b) Modifiez le script pour qu'il indique aussi si file n'existe pas.

c) Modifiez-le pour qu'il indique en plus, si file existe, si c'est un fichier régulier, un répertoire ou un lien symbolique.

d) Modifiez-le pour qu'il affiche en plus, si le script est appelé sans argument, le message suivant (ce sera le mode d'emploi du script) sur la sortie d'erreur, puis échoue :

USAGE: ./exo52.sh file
affiche la nature du fichier

Exercice 3 : échange d'arguments

a) Réalisez un script exo53.sh qui va afficher les deux arguments qu'on lui a passé en les échangeant ; par exemple :

$ ./exo53.sh foo bar
bar foo
$ ./exo53.sh ga bu
bu ga

b) Modifiez-le pour qu'il affiche en plus, si le script est appelé avec moins de 2 arguments, le message suivant sur la sortie d'erreur, puis échoue :

USAGE: ./exo53.sh mot1 mot2
affiche mot2 mot1

c) Modifiez-le pour que de plus, s'il y a au moins 3 arguments, il les réaffiche en échangeant les 2 premiers :

$ ./exo53.sh mi fa sol
fa mi sol
$ ./exo53.sh ga bu zo meu
bu ga zo meu
$ ./exo53.sh $(seq 10)
2 1 3 4 5 6 7 8 9 10

Indice : pensez à shift

d) Adaptez le message d'usage de la question b).

Exercice 4 : argument optionnel

a) Réalisez un script exo54.sh, dont l'usage sera :

./exo54.sh [-l|-u|-i] mot1...

Invoqué sans option, le script affichera les mots passés en argument :

$ ./exo54.sh Je fais du LaTeX
Je fais du LaTeX

Invoqué avec l'option -l, le script les affichera en minuscules :

$ ./exo54.sh -l Je fais du LaTeX
je fais du latex

Invoqué avec l'option -u, le script les affichera en majuscules :

$ ./exo54.sh -l Je fais du LaTeX
JE FAIS DU LATEX

Invoqué avec l'option -i, le script inversera la casse :

$ ./exo54.sh -l Je fais du LaTeX
jE FAIS DU lAtEx

b) Améliorez le script pour qu'il affiche l'usage (comme dans les exercices précédents : précédé de "USAGE:", dans la sortie d'erreur, puis il échoue) dans les situations suivantes :

  • appelé sans argument ;
  • appelé avec une option correcte mais sans mot après.