Exercices - Les scripts

Exercice 1 : premiers pas et commandes systèmes

Créez un script qui permet de :

  1. Créer un répertoire Essai_Script
  2. Créer un fichier vide toto.txt dans ce répertoire
  3. Créer une copie de toto.txt nommée toto2.txt, toujours dans ce répertoire
  4. Stocker une liste des fichiers de votre répertoire d’accueil dans le fichier toto.txt
  5. Afficher le texte Script correctement exécuté !

Exécutez votre script et vérifiez que tout se passe bien.

Exercice 2 : introduction aux boucles

Écrire un script qui compte à rebours de 5 à 1 et qui affiche ensuite Décollage....

Exercice 3 : lecture sur l’entrée standard

Réalisez un script qui affiche un message de bienvenue, puis qui lit une phrase de quatre mots au clavier et qui l’affiche à l’envers.

Exercice 3, pour aller plus loin

Proposez une solution alternative à l’exercice précédent qui n’utilise pas la commande read.

Exercice 4 : conditions

Écrire un script qui demande à l’utilsateur de répondre 42 à la question et qui boucle tant que l’utilisateur n’a pas répondu 42.

Exercice 4, pour aller plus loin

L’objectif de cet exercice est d’explorer les options de read. Écrire un script qui demande à l’utilisateur de se choisir un login de moins de 8 caractères, puis un mot de passe d’au moins 8 caractères. Tant que l’utilisateur ne saisit pas de données correctes, on lui demande de recommencer. Bien entendu, le mot de passe ne sera pas affiché sur la console pendant que l’utilisateur le saisit. Les logins et mots de passe saisis seront tous stockés, un par ligne, dans un fichier que vous nommerez top_secret, sous la forme login:passwd.

Exercice 5 : création de fichiers

Écrire un script qui crée 5 fichiers fichier1.txt à fichier5.txt dans un répertoire (existant) passé en paramètre.

Exercice 5, pour aller plus loin

Améliorez le script précédent pour permettre : - de créer le répertoire s’il n’existe pas - de choisir le nom du fichier (par exemple, si je choisis exo, les fichiers créés se nommeront exo1.txt, exo2.txt, etc. - de choisir le nombre de fichiers à créer

Exercice 6 : renommer des fichiers

Écrire un script qui affiche la liste des fichiers présents dans un répertoire passé en paramètre en ajoutant mon_ au début du nom de tous les fichiers (mais pas des répertoires !).

Exercice 7 : recherche dans un annuaire

En utilisant le fichier annuaire.txt du TP précédent, écrire un script recherche_annuaire.sh permettant de déterminer si le nom passé en paramètre lors de l’appel du script apparaît dans l’annuaire. Si la personne est présente dans l’annuaire, le script retournera présent et sinon, absent.

Exercice 7, pour aller plus loin

Modifiez votre script précédent pour retourner Je ne connais pas cette personne. si la personne n’est pas dans l’annuaire, et *Le numéro de téléphone de bob est 0606060606.” si bob est dans l’annuaire. Bien entendu, vous remplacerez bob et le numéro de téléphone par les vraies données de votre annuaire.

Exercice 7, pour aller plus loin avec les expressions régulières

Écrire un script qui permet de rechercher tous les ? qui ne sont pas précédés d’un espace et de les remplacer par `` ?``. Créez un fichier de test pour vérifier que le script ne remplace pas les caractères à mauvais escient. Vous pouvez ensuite améliorer votre script pour demander à l’utilisateur quel caractère rechercher, par quoi le replacer, etc. Vous pouvez également améliorer votre script en montrant à l’utilisateur les remplacements effectués.

Exercice 8 : gestion des erreurs

Écrire un script qui donne le terme anglais d’un chiffre passé en paramètre. Les chiffres sont compris entre 0 et 5. Le script répondra unknown en cas d’erreur.

Exercice 9 : gestion des droits et des erreurs

Écrire un script qui déplace l’utilisateur dans le répertoire passé en paramètre et crée un fichier vide dans ce dernier, uniquement si ce répertoire existe et que l’utilisateur est autorisé à se déplacer dedans. Un message d’erreur devra être affiché le cas échéant.

Exercice 10 : premiers pas vers l’admin système

Écrire un script shell qui affiche le nom de tous les fichiers du répertoire /usr/include dont le nom se termine par .h et ayant plus de 100 lignes.

Exercice 11 : automatisation de tâches

Écrire un programme permettant de changer facilement l’extension d’une série de fichiers.

Exemple : la commande renomme htm html ~/mydir renomme tous les fichiers .htm du répertoire mydir en .html.

Exercice 11, pour aller plus loin

Améliorez votre script précédent pour qu’il affiche sa documentation lorsqu’il est appelé sans aucun argument, et un message d’erreur lorsqu’il est appelé avec le mauvais nombre d’arguments.

Exercice 12 : invite de commande maison

Écrire un script qui affiche un menu donnant le choix entre 3 commandes : 1. Affichage de la date en français 2. Addition de deux nombres 3. Quitter

En fonction du choix effectué par l’utilisateur, la commande sera exécutée.

Exercice 13 : gestion de la corbeille sécurisée

  1. Écrire un script trash.sh qui déplace dans un répertoire poubelle les fichiers dont les noms sont passés en paramètres
  2. Ajoutez une option -c à la commande permettant de connaître la taille de la poubelle (indice : utiliser l’option –h de ls)
  3. Ajouter une option -e permettant de vider la poubelle
  4. Ajouter une option -h permettant d’afficher comment utiliser la commande

Exercice 14 : gestion des arguments

Écrire une commande shell avec 3 arguments. Elle indiquera si les 3 chaînes sont identiques ou non par le code de retour suivant : 1. 0 si les 3 chaînes sont égales 2. 1, 2 ou 3 si la chaîne différentes des autres est à la (1/2/3)ieme position 3. 4 si les trois chaînes sont différentes 4. 5 si le nombre de paramètres est incorrect