Problème en shell :'(

Bonjour!
Je suis en 1ere année d'iut info & on U comme sujet 1 exo de programmation en shell, & G po tro compri comment faire D joli scripts!
En gros on doi faire 1 script li le nom des etudiants connectés dans 1 salle TX particuliere, un ki cherche 1 fichier en tete C donné au clavier dans la bibli & enfin les noms des fichiers crées le jour mm & se trouvan t dans le repertoire donné au clavier. & le pb C ke je c pas tro comment rediger mes scripts! Toute aide serai la bienvenue. Merci d'avance

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Ecoute, mon petit ami en première, si toi tu gagnes du temps à écrire en abbrégé, nous sommes peut-être cinquante à devoir te décoder pour tenter de t'aider, alors le respect le plus élémentaire serait d'écrire en français et avec les accents je t'en supplie puisque tu n'as visiblement pas un clavier Qwerty sous tes doigts ! Pour ce que cela te prendra de temps en plus, c'est peanuts !

    Alors reprennons. Sur quel ordinateur, tournant quel système devras-tu faire ce travail ? Comment pourrais-tu détecter les utilisateurs connectés ? Est-ce un main-frame unix avec des terminaux ? Quel langage de shell dois-tu utiliser? Est-ce que tu connais déjà ce langage ?

    Peux-tu nous traduire si cela avait un importance les mots:
    salle TX,
    fichier en tete C

     :,§_ ç _
    (@)=(@)
    1. Contributeur
      Et éviter de poster le même message en triple :(...

      -= Fu Xuen =-
      1. Oups, désolé, c'est l'habitude pour les abréviations!
        TX c'est des terminaux X sous Unix. Il me semble qu'on peut utiliser la commande "who" pour connaitre les utilisatuers connectés dans une salle donnée, et passer ce numéro de salle en paramètre du script.
        On doit programmer ca en korn shell. Ce langage, on l'a un peu étudié en cours.
        Lezs fichiers entête c'est les include en C++ qui se trouvent sur le réseau à l'IUT .
        Merci
        1. Contributeur
          Bon, ce n''est pas compliqué, tu lances quelques bouts de programmes que tu pipes au suivant, qu'il soit grep, awk ou perl pour filtrer ce qui est en trop et pour mettre en forme puis sur diriges vers le stream de sortie.

          Demande les man pages de chacune de who, ps, grep et find qui varient d'un unix à l'autre...
          http://www.ift.ulaval.ca/~beaulieu/linux/fr/man1/who.html
          http://www.ift.ulaval.ca/~beaulieu/linux/fr/man1/ps.html
          http://www.ift.ulaval.ca/~beaulieu/linux/fr/man1/grep.html
          http://www.ift.ulaval.ca/~beaulieu/linux/fr/man1/find.html

          Pour les paramètres, tu dois te renseigner sur la syntaxe des korn shells. Fais-nous ton devoir et envoie-nous tes projets, on pourra tous te relire et en profiter ...
           :,§_ ç _
          (@)=(@)
          1. merci beaucoup!
          2. 1)
            echo "Donner la lettre de la salle"
            read alpha
            echo "vous avez choisi de connaitre les etudiants de la salle $alpha"
            finger -l | grep "Login" | tr -s " " | cut -f 3,8,9 -d " " > temp
            templiste=` who | grep "ncdtx$alpha" | cut -f1 -d " " `
            grep -E "$templiste" temp
            rm -f temp

            2)
            echo "Donner le nom de la fonction a rechercher"
            read fct
            nomf=` grep -l "$fct" /usr/include/*.h `
            nom2=` grep -l "$fct" /usr/ibmcxx/include/*.h `
            echo "$nomf" "$nom2"

            3)
            date
            jour=` date | cut -f 2,3 -d " "`

            echo "Donner nom, par defaut courant"
            read rep

            cd $rep
            ll | tr -s " " |cut -f 6,7,9 -d " " | sort $date > tous
            grep -E "$jour" tous
            rm -f tous

            C'est pour ce 3eme exemple que j'ai eu des problemes parce que on voulai pouvoir faire des conditionnelles mais il y a des erreurs. En gros on voulait dire "si rien n'est rentré faire ceci, sinon faire cela et dans tous les autres cas on recommence" Mais il y avait un probleme dans la do while.
            Donc la le sript marche a peu pres mais est loin d'etre propre!!
          3. Contributeur
            @bolboBonjour à tous.

            Pour le 3ème point, tu peux effectivement rajouter quelques tests comme par exemple l'existence du repertoire saisi.
            Ex :
            date
            jour=` date | cut -f 2,3 -d " "`
            echo "Donner nom, par defaut courant"
            read rep
            [[-d rep]] && {
            cd $rep
            ll | tr -s " " |cut -f 6,7,9 -d " " | sort $date > tous
            grep -E "$jour" tous
            rm -f tous
            }

            Bon courage.

             
               (:•Þ  Pitu
        2. Contributeur
          Félicitation àbolbo et pitu !
          Ah, les jeunes, cela fait plaisir à voir que certains vont encore au fond es choses.
          Un acheteur dans une société est celui qui négocie les remises et les délais de livraison des PCs, qui a une belle voix, une belle cravatte et n'a pas besoin de connaire Bourne et Korn.
          Un ingénieur système est celui qui maîtrise le arcanes des systèmes et peut à la demande des utilisateur faire des miracles.

          Les scripts ont été introduits pour pouvoir interagir avec le système opératoire, chaque grand fabricant a eu ses idées, les scripts chez unix ont traversé les âges et sont de l'avis de tous extrêmenent fournis
          contrairement au"batch files" du MS-DOS (et encore plus rigolo, LA CONSOLE de RÉCUPÉRATION de Windows XP qui me laisse pantois: par exemple: on dispose de l'instruction Copy, mais dans un seul sens et dans cetains répertoires bien précis: de A:\ vers C:\windows mais pas quesion de lancer Edit boot.ini par exemple, ils ont estimés que ce n'était sans doute pas nécessaire...

           :,§_ ç _
          (@)=(@)
          1. Contributeur
            Merci M&M, mais j'ai pô apporté grand chose ...
            C'est surtout Bolbo qu'il faut féliciter : il a posé des questions, a obtenu des liens vers des docs, et ... s'est mis au boulot sans attendre qu'on lui mâche le travail.
            Exactement ce que nous devrions tous faire !
             
               (:•Þ  Pitu
        3. Tout d'abord je tien a remercier tous ceux qui m'on bien aidé a cet exo. Voici la version finale:
          1)
          echo "Donner la lettre de la salle : a,b,c,d,e,f,h "
          echo "Par defaut la liste complete des personnes connectees ."
          read alpha
          echo ""
          finger -l | grep "Login" | tr -s " " | cut -f 3,8,9 -d " " > temp
          templiste=` who | grep "ncdtx$alpha" | cut -f1 -d " " `
          grep -E "$templiste" temp
          rm -f temp
          echo ""

          2)
          echo "Donner le nom de la fonction a rechercher"
          read fct
          echo " Les resultats de la fonction $fct sont : "
          echo ""
          echo " 1ere recherche : /usr/include/ "
          cd /usr/include/
          nomf1=` grep -l "$fct" *.h `
          echo "$nomf1"
          echo ""
          echo " 2eme recherche : /usr/ibmcxx/include/ "
          cd /usr/ibmcxx/include/
          nomf2=` grep -l "$fct" *.h `
          echo "$nomf2"
          echo ""

          3)
          date
          jour=` date | cut -f 2,3 -d " "`
          echo "Donner nom, pour repertoire courant = . "
          read rep
          echo ""
          [[ -d "$rep" ]] && {

          cd $rep
          ll | tr -s " " |cut -f 6,7,9 -d " " | sort $date > temp
          grep -E "$jour" temp
          rm -f temp
          echo ""
          }

          Merci a tous :)
          1. je suis un etudiant en compétence complémentaire en iformatique
            mon problème est le suivant
            un enseignant veut espionner ses étudiants . il décide d'avoir tous les étudiant qui sont jamais ouvert une session sur le réseau de l'université.
            on utilise les instructions ypcat passwd
            grep et cut et finger pour avoir arriver à la liste des étudiants
            merci infiniment