You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.0 KiB

TP 7 - Scripts

Pas de compte rendu dédié aux TP sur les scripts shell. Vos programmes feront foi !

Quelques règles simples pour éviter les erreurs de syntaxe :

  • jamais d'espace autour d'une affectation (exemple : a=3)
  • des espaces partout ailleurs (exemple if test $a = 4; then... ou if [ $a = 4 ] ; then...

Pour observer les commandes exécutées, passez en mode trace en plaçant la commande set -x en début de programme.

6 - La commande menu1

En utilisant la structure while, écrire un script qui :

Tant que l'utilisateur n'a pas tapé 9

  • affiche un menu
  • demande à l'utilisateur de saisir une option du menu
  • affiche à l'utilisateur le résultat de sa commande

Exemple de ce qui doit s'afficher à l'écran :

Menu général
***************************************

<1> Afficher la date (date)

<2> Afficher le nombre de personnes connectées (who)

<3> Afficher la liste des processus (ps)

<9> Quitter

7 - La commande evaluateur

En utilisant la structure until...do...done, écrire un script qui :

  • demande à un utilisateur de saisir une commande
  • exécute la commande ou affiche un message d'erreur si la commande ne s'est pas correctement exécutée.
  • répète cette opération tant que l'utilisateur le désire

Indication : si vous disposez d'une variable contenant une ligne de commandes il est possible de l'exécuter via la fonction interne au shell eval. Le code de retour retourné par eval est le code de retour retourné par la commande. Exemple : c="ls -l | wc -l" eval $c

Voici un exemple de ce que votre programme doit afficher à l'écran :

Saisissez une commande, commande <q> pour quitter.
> date
mar sep 30 21:20:45 CEST 2008
Saisissez une commande, commande <q> pour quitter.
> cd /toto
bash: cd: /toto: Aucun fichier ou répertoire de ce type
cette commande a généré une erreur !!!!
Saisissez une commande, commande <q> pour quitter.
> q