Académique Documents
Professionnel Documents
Culture Documents
fr
n
– flag <nom_du_drapeau> : retourne l’état actuel du drapeau si le fichier
correspondant n’existe pas on affiche un message d’erreur.
o
– flag <nom_du_drapeau> on : positionne le drapeau (i.e. mettre dans le
i
fichier correspondant la valeur 1). Si le fichier n’existe pas la commande
crée le fichier.
t
– flag <nom_du_drapeau> off : enlève le drapeau (i.e. mettre dans le fi-
chier correspondant la valeur 0). Si le fichier n’existe pas la commande
c
crée le fichier.
– flag <nom_du_drapeau> flop : inverse l’état du drapeau. Si le fichier
e
correspondant n’existe pas alors on affiche un message d’erreur.
r
#!/bin/bash
C
error(){
o
#
case "$#" in
"1") #
r
# Fonction d’affichage de message d’erreur
#
echo "usage : $1 flag_name [on | off | flop]"
1
Département R & T Rushed.Kanawati@lipn.univ-paris13.fr
n
then
if [ ‘cat $1‘ -eq "1" ]
o
# Noter l’emploi de ‘ pour récupérer le résultat de la commande cat
then
i
echo "0" > "$1"
t
else
echo "0" > "$1"
c
fi
else
error $0
e
fi
r
;;
*)
r
error $0
esac
o
;;
*)
error $0
;;
C
esac
2 Gestion de sauvegarde
1. Ecrire un programme shell nommé saveTxt qui permet de copier tous
les fichiers dans le compte utilisateur (e.g. compte étudiant) et qui se
terminent par le suffixe .txt dans un répertoire nommé ∼/.backup. Si le
répertoire .backup n’existe pas alors la commande doit le créer.
#!/bin/bash
2
Département R & T Rushed.Kanawati@lipn.univ-paris13.fr
#!/bin/bash
copier() {
#
# Cette fonction copie le fichier passé en argument dans ~/.backup
# s’il n’existe pas déjà dans .backup
#
f=‘basename $1‘ # récupérer le nom du fichier sans le chemin
if [ ! -e "~/.backup/$f" ]
then
cp $1 ~/.backup
n
fi
}
o
if [ ! -d ~/.backip ] # si le répertoire ~/.backup n’existe pas il faut le créer
i
then
t
mkdir ~/.backup
fi
c
find . -name "*.txt" -exec ./copier {} \;
# noter l’utilisation de la fonction copier
3 Poubelle
r r e
Développer une commande nommée poubelle qui permet de transférer les
fichiers à effacer dans un répertoire nommé trash. La syntaxe de cette com-
o
mande est la suivante :
1. poubelle f1 f2 f3 . . . fn a pour effet de transférer les fichiers f1 à fn
dans le répertoire trash.
C
2. poubelle -f a pour effet d’effacer le contenu du répertoire .trash.
3. poubelle a pour effet d’afficher un message d’aide décrivant la syntaxe
correcte de la commande.
#!/bin/bash
case "$#" in
0) #
# Si il y a aucun argument alors afficher un message d’erreur
#
echo "usage: $0 target_files"
echo " $0 -f "
;;
3
Département R & T Rushed.Kanawati@lipn.univ-paris13.fr
*) # si il y a des arguments
if [ "$1" = "-f" ] # si le premier argument set -f alors effacer le contenu de .t
then
rm -r ~/.trash/*
else # sinon déplacer les fichiers cités en arguments vers .trash
mv $@ ~/.trash
fi
;;
esac
ti o n
r r e c
C o
4