licence pro GSI: scripts sous unix/ TD No3

Objectifs du TD :  scripts shell simples, fonctions, commande grep et expressions rationnelles, structures de contrôle

exercice 1: fonctions

  1. Ecrire une fonction nbArg qui affiche son nombre d'arguments et "pas d'arguments" si elle a été appelé sans paramètre
  2. Ecrire une fonction existeFichier qui indique si le fichier qui lui est passé en argument existe. Le code de retour de la fonction vaudra 0 si c'est le cas.
  3. écrire une fonction estFichierOrdinaire ayant un nom de fichier en argument et qui indique si ce fichier est un fichier ordinaire : le code de retour de la fonction vaudra 0 si c'est le cas, 1 si le fichier existe mais n'est pas un fichier ordinaire et 2 sinon.
  4. écrire une fonction tailleFichier qui affiche la taille en Ko d'un fichier.

exercice 2: structures de contrôle (if, for, ...)

  1. écrire un script shell qui indique pour chaque fichier du dossier courant si c'est un dossier, un fichier ordinaire ou autre chose.
  2. écrire un script qui  crée une copie de sauvegarde de chaque fichier ordinaire : la copie de sauvegarde sera dans le dossier courant et son nom sera le nom du fichier auquel on aura ajouté ".bak". Ainsi, la copie de sauvegarde du fichier toto.txt sera toto.txt.bak
  3. modifier votre script de façon à 1) ce qu'on puisse lui passer en argument le dossier sur lequel agir et 2) ce qu'il agisse récursivement sur les dossier présents dans ce dossier
  4. écrire un script sommeTaille1.sh qui affiche la taille des fichiers ordinaires dont les noms lui sont passés en paramètre puis la somme des tailles des fichiers. Exemple: "sommeTaille1.sh f1 f2 test" retourne des tailles des fichiers ordinaires f1, f2 et test puis leur somme.

Exercice 3: grep, expression rationnelles communes et expansion de noms de fichiers

  1. écrire un script qui indique si une personne (dont le nom sera fourni en argument à votre script) est connectée sur votre poste
  2. on utilise le fichier adresses.txt du tp2. Vous pourrez le compléter pour faire vos tests.
    1. sélectionnez les lignes des personnes dont le nom commence par Petit
    2. sélectionnez les lignes des personnes dont le nom est Petit
    3. sélectionnez les lignes des personnes dont le prénom est Pascal
    4. sélectionnez les lignes des personnes habitant dans le département 91
    5. sélectionnez les lignes des personnes dont le nom commence par P et habitant la ville de Dreux.
  3. écrire un script qui affiche le login d'un utilisateur dont on fournit l'uid
  4. comment obtenir
    1. la liste des fichiers dont le nom fini par le caractère 4,
    2. la liste des fichiers dont le nom ne contient aucun chiffre,
    3. la liste des fichiers  dont le nom commence par result et contient moins de 8 caractères ?