Nom: Prénom TP:

On suppose que le répertoire ~/bin existe; vous y placerez les scripts écrits.

Partie A.1
Ecrire un script de nom verif qui reçoit un nom de fichier en paramètre, et vérifie que ce fichier peut être créé, ou modifié, après une demande éventuelle.
Le code retour fourni par ce script est:

  •   1   si le nombre de paramètres est différent de 1
  •   2   si le fichier existe, est modifiable et on répond "non" à la demande d'écrasement
  •   3   si le fichier existe, mais est protégé en écriture
  •   4   si le fichier n'existe pas , mais son répertoire est protégé en écriture (utiliser: dirname nomFichier, pour avoir le nom du répertoire)

  • Partie A.2
    Après avoir édité le fichier verif dans le répertoire ~/bin, que faut-il contrôler pour qu'on puisse exécuter ce script, quel que soit le répertoire courant, par exemple avec la commande:
          verif   ~/C++/ab.cc


    Un programmeur veut pouvoir chercher dans quels fichiers, entêtes ou sources C++ (*.h, *.C, *.cc), est utilisé un mot. Voici un exemple de recherche:
      find divers -type f -name "*.C" -exec grep -wl a_html {} \;
    et l'affichage obtenu:
          divers/cpp/tmp/anaHtml.cc
          divers/cpp/a_html.cc

    qui permet de connaître les fichiers d'extension '.cc'du répertoire divers, ou en aval de ce répertoire, contenant le mot 'a_html'.

    Ecrire un script de nom lesFics qui reçoit un nom de répertoire rep, et un mot m et affiche les noms des fichiers sources (*.C ou *.cc) ou entêtes, contenant le mot m, dans rep et en aval.
    Le script, après vérification des paramètres reçus, affiche toutes les lignes contenant le mot.

    Exemple: l'appel   lesFics /usr/include INT_MAX   donne l'affichage:
       ./limits.h:80:# define INT_MAX 2147483647
       ./limits.h:81:# define INT_MIN (-INT_MAX - 1)
       ./stdlib.h:125:/* largest number (INT_MAX) */
       ./arts/gsl/gslglib.cc:127:const int G_MAXINT = INT_MAX;
       + + 'INT_MAX' trouvé dans 3 fichiers

    Partie B.1
    Indiquez les divers codes "retour" fournis par ce script en cas d'erreur dans l'utilisation des paramètres. Programmez la suite du script.

    Partie B.2
    Indiquez les essais que vous envisagez d'effectuer pour tester votre programmation.