TP1 Scripts BASH


  1. Scripts a: et c:
  2. Pour les nostalgiques du dos, il s'agit de taper a: en ligne de commande et d'obtenir le contenu du répertoire principal de la disquette. Taper c: pour démonter la disquette et obtenir la liste de /

  3. Vérifier si un utilisateur est connecté
  4. Lire et traiter un fichier texte

    1. Prérequis : while, les paramètres positionnels, set --
      Conseil : utiliser la construction :
      cat < users.txt | while true
        do
        read ligne
        if [ "$ligne" = "" ]; then break; fi
        ...
        done 
    2. Créer un fichier texte users.txt contenant quelques lignes au format suivant login mot-de-passe nom groupes-secondaires
      Par exemple : toto moiletoto M.Toto profs,reseau (pas d'espace dans les champs)
    3. Ecrire le script essai-comptes.sh qui parcourt ce fichier ligne par ligne, récupère les champs de chaque ligne dans les paramètres positionnels, et les affiche.
    4. Cet exercice sera poursuivi pour créer un script capable de générer des comptes à partir d'un fichier.

  5. Comptes créés
  6. Tester un fichier
  7. Afficher le contenu d'un répertoire
  8. Envoyer un mail à un ensemble d'utilisateurs

    Avec l'utilitaire mail, il s'agit d'envoyer un même message à un ensemble d'utilisateurs. On pourra écrire plusieurs versions :
    1. Le message est envoyé à tous les utilisateurs dont la liste est passée en argument au moment de l'appel (message1)
      Indication : récupérer la liste des arguments dans la variable spéciale $@

    2. Le message est envoyé à tous les utilisateurs actuellement connectés (message2)
      Indication
      Dans la boucle for .. in liste, on obtiendra liste avec une substitution de commandes, utilisant who
      Amélioration
      A la fin du script, tester si l'envoi s'est bien déroulé sans erreur en interrogeant le code de retour de mail. Si c'est le cas, ajouter à la fin du fichier utilisateurs.send : la date, et la liste des correspondants.

    3. Le message est envoyé à tous les utilisateurs dont le nom commence par un nom générique, passé en argument au moment de l'appel (message3)
      Indication
      On commencera par vérifier l'existence d'au moins un compte
      l'appel message stage doit envoyer le message à tous les utilisateurs, dont le nom commence par stage (comme stage1 ..)
    4. Reprendre message1 avec le texte du message déjà enregistré dans le fichier message.txt
      appel : message message.txt liste