Problème en shell :'(

bolbo -  
 mellouk -
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
A voir également:

7 réponses

M&M Messages postés 5058 Statut Contributeur 669
 
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

 :,§_ ç _
(@)=(@)
0
Fu Xuen Messages postés 3651 Statut Contributeur 306
 
Et éviter de poster le même message en triple :(...

-= Fu Xuen =-
0
bolbo
 
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
0
M&M Messages postés 5058 Statut Contributeur 669
 
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 ...
 :,§_ ç _
(@)=(@)
0
bolbo
 
merci beaucoup!
0
bolbo
 
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!!
0
Pitu Messages postés 1460 Statut Contributeur 125 > bolbo
 
Bonjour à 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
M&M Messages postés 5058 Statut Contributeur 669
 
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...

 :,§_ ç _
(@)=(@)
0
Pitu Messages postés 1460 Statut Contributeur 125
 
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
0
bolbo
 
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 :)
0
mellouk
 
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
0