Unité libre: scripts sous unix/ TD No5
Objectifs du TD : structures de contrôle case et while;
instruction read, arithmétique entière
exercice 1:
- comment créer en une commande les dossiers td1, td2, td3,
td4, cours1, cours2, cours3 et cours4.
- mettez en une commande les résultats des commandes w et df
dans le fichier ex1-2.txt
- Que fait la commande suivante : { cd /etc; du -sk * } >
ex1-3.txt.
- modifiez cette commande de façon à ce qu'elle ne
modifie pas le dossier courrant (le contenu du fichier obtenu
doit être le même).
- Qu'affiche la commande suivante: echo 'ceci est mon shell:
$SHELL, ceci est un dollar $, ceci est un # ceci est une étoile
: * et voici la liste des fichiers du dossier courant: *'
- corrigez la commande précédente pour qu'elle
affiche correctement le shell de l'utilisateur et la liste des fichiers
- même question que précédemment mais sans
utiliser ni ' ni "
exercice 2: structures de contrôle (case, while)
- écrire un script qui demande à son utilisateur de
choisir une opération op
(choix1: +, choix 2: -, choix 3: / ou choix 4: *), deux
nombres n1 et n2 et qui affiche la valeur de n1 op n2.
- écrire une script qui affiche la somme de ses
paramètres supposés être des entiers positifs ou
négatifs
- vérifier l'effet des options du shell (set -x, set -v, set
-n) sur les scripts précédents
- on souhaite faire du ménage dans les fichiers du dossier
courant. Ecrire un script qui :
- crée les dossiers Src, Doc et Bazar s'ils n'existent pas
- déplace les fichiers finissant par .c et .h dans le
dossier Src
- déplace les fichiers finissant par .txt, .tex, .sxw et
.odt dans le dossier Doc
- efface les fichiers finissant par ~ ou par .doc
- ne pas toucher aux autres fichiers
Exercice 3: taille des fichiers
- écrire un script sommeTaille1.sh
qui affiche la taille des fichiers ordinaires dont les noms lui sont
passés
en paramètre puis la somme des tailles des fichiers. Exemple:
"sommeTaille1.sh f1 f2 test" retourne des tailles des fichiers
ordinaires f1, f2 et test puis leur somme.
- écrire un script sommeTaille2.sh
qui réalise le même travail mais qui lit les noms de
fichiers sur son entrée standard (1 nom de fichier par
ligne).Exemple d'utilisation: "(echo f1; echo
f2;echo test) |sommeTaille1.sh".
- écrire un script sommeTaille3.sh
réalisant le même travail mais acceptant les
paramètres suivant :
- -m : affiche la taille en Mo (1Mo=1024 Ko)
- -s : n'affiche que la taille totale
Bibliographie/liens utiles
Dans une version ultérieure de ce document.