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.6 KiB

TP 6 - Scripts

debut ./afficheArg.sh "dj ff" djfj dlld pour lancer

echo $		pour afficher le separateur ' ' de base

echo -n   permet que echo n'aille pas a la ligne apres

egrep -q rend silentieux le egrep (pas de messages dur le terminal)

ECHAP u pour faire un CTRL + z sous vim

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...
  • $ devant le nom d'une variable pour accéder à son contenu.

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

La commande existe

Écrire un programme qui :

  • Demande à l'utilisateur de saisir un nom de fichier
  • Vérifie que le fichier existe et qu'il est accessible en lecture
  • Affiche alors le contenu du fichier à l'aide de la commande cat
  • Affiche sinon un message d'erreur si le fichier n'existe pas ./existe.sh

La commande min1

Écrire un script-shell qui demande à l'utilisateur de saisir une suite d'entiers (un par ligne) et qui affichera le plus petit des entiers saisis.

La commande min2 entier [entier ...]

Étape 1

Écrire un script-shell recevant en arguments (sur la ligne de commande, en paramètre) une suite d'entier et affichant le plus petit d'entre eux.

Étape 2

Lorsque votre programme fonctionne ajouter le nécessaire pour gérer le cas d'un nombre d'argument nul. Dans ce cas le programme affichera un message d'erreur et retournera un code retour de 1 (il retournera 0 dans les autres cas).

La commande arg1

Écrire un programme qui affiche son nom (seulement la dernière partie après le dernier '/'), puis chacun de ses arguments, séparés par des caractères '#'. Attention, le dernier argument ne doit pas être suivi d'un '#'.

Indications :

  • l'option -n (nonewline) de la commande echo peut-être utile.
  • la commande basename également`

Exemple :

./arg1 toto titi tata

arg1 toto#titi#tata
``` echo "A  K  L  OP    PP   M  K  K" | tr -s " " | tr -t " " "#"

## La commande `dir [répertoire]`

Écrivez un script-shell qui affiche les fichiers du répertoire passé en argument (ou du répertoire courant si aucun répertoire n'est passé en argument) en encadrant de crochets le nom des fichiers correspondant à des répertoires et faisant suivre d'une étoile le nom des fichiers exécutables (autres que les répertoires).

Indication : utilisez la commande `test` pour déterminer le type du fichier.