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 02/12/2006, 09h04   #1
Membre du Club
 
Inscription : avril 2004
Messages : 85
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2004
Messages : 85
Points : 62
Points : 62
Par défaut Awk et lecture de variables

Bonjour,

Avant tout, voici une partie de mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
echo "Entrez un ou des nom(s) d'utilisateur (séparés par un espace):"
read nom
 
if [ ! -z "$nom" ]
then
   for user in $nom
   do
   verif_utilisateur $user
 
   if test $? -eq 1
   then
           awk 'BEGIN {FS=":"}
           $1 == user {print "nom user: "$1}' /etc/passwd
 
    else
           echo "L'utilisateur $user n'existe pas"
     fi
     done                                                                             
else
       echo "Vous devez entrer au moins le nom d'un utilisateur !"
fi
Cette fonction doit permettre de récupérer les informations d'un ou des utilisateurs, après avoir renseigné leurs noms. Tout marche bien, sauf lors de mon test avec awk. En effet, je n'arrive pas a récupérer la valeur de la variable user.

Je me demandais aussi comment il était possible de mettre des apostrophes dans un print awk.
aicfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2006, 13h26   #2
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
bonjour,
as-tu essayé d'échapper tes apostrophes ? ' devient \' ; " devient \", etc
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2006, 13h54   #3
Membre du Club
 
Inscription : avril 2004
Messages : 85
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2004
Messages : 85
Points : 62
Points : 62
Alors j'ai bien échappé mes apostrophes mais rien y fait...impossible des les afficher. Je vais certainement opter pour les "`" qui eux passent très bien.
Merci tout de même.
aicfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2006, 16h39   #4
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
attention aux ` qui sont également utilisés pour éxécuter un programme en bash/sh !
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 09h33   #5
Membre du Club
 
Inscription : avril 2004
Messages : 85
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2004
Messages : 85
Points : 62
Points : 62
ui, ui, mais je pense qu'en échappant ce caractère il ne devrait pat y avoir de problèmes.
aicfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 19h05   #6
Membre du Club
 
Inscription : avril 2004
Messages : 85
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2004
Messages : 85
Points : 62
Points : 62
L'option -v de awk permet d'assigner une valeur à une variable utilisable dans awk.
Ainsi, on peut faire ce genre de choses:

Code :
1
2
3
 
user=xxxx
awk -F: -v user=$user '{if ($1==user) print $1" "$3}' /etc/passwd
aicfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h55.


 
 
 
 
Partenaires

Hébergement Web