Envoyé par
carlou135
Bonjour à vous tous. J'aimerais pouvoir passer mes variables nom et prénom dans mon awk mais sa marche pas. Je veux rechercher l'adresse email de l'usagé en recherchant dans les champs nom et prenom et ensuite afficher son adresse email mais l'adresse ne s'affiche simplement pas. Alors je suis sur que c'est une niaiserie mais quand on le sais pas lol on peu pas ben ben avancer.
Voici mon code pour vous aider un peu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| TrouverEmailUsager() {
echo "Veuillez entrer votre nom :"
read nom
echo "Veuillez entrer votre prénom :"
read prenom
awk '/$nom/ , /$prenom/ {print $3}' car
}
opt1="Statistique de la taille du carnet"
opt2="Afficher le carnet d'adresse"
opt3="Imprimer le carnet"
opt4="Ajouter un nouveau membre"
opt5="Modifier un membre"
opt6="Rechercher un membre"
opt7="Information du nombre de membre avec un fournisseur"
opt8="Quitter"
echo -e "\nBIENVENUE DANS LE GESTIONNAIRE D'ADRESSES EMAILS\n"
echo -e "Menu: \n"
PS3="
Entrez votre choix : "
while (true)
do
select option in "$opt1" "$opt2" "$opt3" "$opt4" "$opt5" "$opt6" "$opt7" "$opt8"
do
case $option in
$opt1) echo "Vous avez choisi l'option : $opt1"
echo -e "\n"
break ;;
$opt2) AfficherCarnet
echo -e "\n"
break ;;
$opt3) ImprimerCarnet
echo -e "\n"
break ;;
$opt4) AjouterMembres $nom $prenom $email
echo $nom $prenom $email $(date +%D) >> car
echo -e "\n"
break ;;
$opt5) ModificationEmail
echo -e "\n"
break ;;
$opt6) TrouverEmailUsager
echo -e "\n"
break ;;
$opt7) FournisseurInternet $fda
echo "Il y a 23 usagés utilisant le fournisseur d'accès internet nommé $fda."
break ;;
$opt8) echo "Vous avez quitter le programme!!"
exit ;;
*) echo "Option inexistante";
exit ;;
esac
done
done |
Une variable shell n'est pas connue du programme awk qui est exécuté, rappelons-le, dans un autre processus (comme toute commande lancée).
Pour passer une variable à awk, faut utiliser l'option "-v var=valeur" (si t'avais regardé le man tu l'aurais vu) et la variable "var" sera vue dans le awk comme contenant la valeur "valeur"
awk -v "x=toto" -v "y=tata" '{printf("%s %s\n", x, y)}'
Partager