Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2008, 17h44   #1
Débutant
 
Inscription : octobre 2007
Messages : 285
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 285
Points : 62
Points : 62
Par défaut un script pour recuperer les utilisateurs connectés sur une machine

Bonjour,
j'ai en fait à recuperer les adresses emails des utilisateurs (seulement ceux qui ont un compte sur ma machine) l'adresse email se trouve bien dans le 6eme champs du fichier /etc/passwd.Mon script a comme parametre le nom de l'utilisateur
mon script est :
Code :
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
#d'abord je verifie si l'utilsateur a un compte ou pas
#apres je redirige le resultat dans un fivhier nommé fich 11
cat /etc/passwd |grep -i $1>>fich11
#je lis e fichier 
cat fich 11 | while read line;do
if [ $line ] ;then
cut -d : -f6 fich11
else echo "utilisateur non existant"
fi
done
le probleme c est que ce bout de code n'a pas marché..je recupere en fait le 6eme champs de fichier /etc/passwd mais non pas seulement le 6emes champs des données de mon utilisateur
s-ehtp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2008, 18h17   #2
Débutant
 
Inscription : octobre 2007
Messages : 285
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 285
Points : 62
Points : 62
aucune reponse?,je sais pas si mon probleme est clair pour vous ou non.si non je peux reformuler mon probleme
s-ehtp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2008, 18h18   #3
Membre éclairé
 
Avatar de herzleid
 
Inscription : juin 2002
Messages : 376
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juin 2002
Messages : 376
Points : 388
Points : 388
Salut,

Alors pour commencer, cat | grep sert à rien. tu fais directement un
Code :
grep mon_pattern monfichier
puis tu test le retour de la commande (la valeur de $?). Si $?=1 alors ton grep n'a pas trouvé ton "client". Si $?=0 alors c'est tout bon.

Apres j'ai pas bien compris ce qui va pas
__________________
www.kywyxy.net
herzleid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 18h27   #4
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 502
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 502
Points : 9 685
Points : 9 685
Bonjour,

Que penses-tu de ce script :

Code :
1
2
3
4
5
6
7
8
9
10
 
#!/bin/bash
 
grep $1 /etc/passwd 2>&1 >/dev/null
if [ $? -eq 0 ]
then
        grep $1 /etc/passwd | awk -F':' '{ print $6 }'
else
        echo "user not found"
fi
Amélioration à apporter :
Ne pas parser deux fois /etc/passwd. Dans le cas où on passe par un fichier intermédiaire, penser à vérifier la non-existence de celui-ci au début du script, et s'il y a création de ficheir(s) temporaire(s) par le script, penser à bien les enlever à la fin dudit script.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2008, 14h17   #5
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
pourquoi faire une boucle si le script recoit l'utilisateur a rechercher via l'argument ?
Code :
1
2
3
4
5
6
7
8
9
 
#!/bin/bash
mail=$(grep -q $1 /etc/passwd | cut -d: -f6)
if [[ $mail = "" || -z $mail  ]]
then
   echo $mail
else
   echo "utilisateur inconnu"
fi
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h08.


 
 
 
 
Partenaires

Hébergement Web