Exercices

Transcription

Exercices
Formation Unix/Linux (7)
Pogrammation de scripts shell
Olivier BOEBION
Mars 2004
Exercices
Gestion de PostIt
Introduction
Les commandes UNIX at et crontab permettent à chaque utilisateur de programmer l’exécution
de scripts dans le temps. La commande at lance un travail à une date précise une seule fois alors
que crontab permet de définir un travail qui se répétera plusieurs fois (une fois par jour ou tous
les premiers du mois, par exemples). La réalisation de cet exercice utilisera la commande at.
Créez un fichier script nommé test qui contienne ce qui suit :
echo "Ceci est un test" > /dev/pts/0
Testez le script et vérifiez qu’il vous affiche le message dans une fenêtre graphique. Si ce n’est
pas le cas, vous pouvez essayer de lancer le programme xconsole et d’envoyer l’affichage vers
”/dev/console” au lieu de ”/dev/pts/0”.
Après avoir consulté l’heure de votre système (commande date), vous allez pouvoir programmer l’exécution de ce script à 18H30 de la manière suivante :
at 18:30 -f test
La commande at permet de lister et de supprimer les jobs programmés auparavant en tapant
respectivement ”at -l” et ”at -d Numéro”. Il est aussi possible de visualiser le contenu du
script qui sera exécuté en spécifiant un numéro de job : at -c Numéro.
Travail à effectuer
Ecrivez un script interactif qui permet de gérer l’affichage programmé de messages. Au
lancement du script, le menu suivant apparait :
1) Ajouter un postit
2) Supprimer un postit
Votre Choix ?
3) Lister les postits existants
4) fin
1
Si vous choisissez d’ajouter un postit, le programme vous demande de renseigner une heure
et un message à afficher :
Nous sommes le Mon Dec 10 23:03:03 CET 2001
Saisissez l’heure: 18
Saisissez les minutes: 32
Tapez votre ligne de message: Salut
A partir de ces renseignements, utilisez une commande at pour programmer l’affichage du message.
Tous les autres choix du menu commencent par afficher la liste des messages programmés :
Liste des PostIts
17
18
2001-12-10 23:45 a boebion
2001-12-10 23:46 a boebion
Le choix de supprimer un postit demande à l’utilisateur de saisir un numéro de travail
programmé.
Subtilités
La création des scripts se fera dans un sous-répertoire ”.postit” du répertoire de travail de
l’utilisateur. Si ce répertoire n’existe pas, votre programme doit le créer automatiquement.
La suppression d’un message programmé doit provoquer la suppression du fichier correspondant dans le répertoire ”.postit”
Si l’utilisateur interrompt le processus ”Postit” en tapant CTRL-C, le terminal s’efface puis
la liste des messages actuellement programmés apparait avant de provoquer la fin du programme.
2