Bonjour,

Je me casse les dents sur le programme suivant (présenté ici seulement sous forme d'extrait) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
awk -F '\t'  -v complet=foo -v partiel=bar '{
           ...
           if ($4==complet) stop=oui
           if (stop==oui && $4==partiel) exit
           ...
           }'
Tant que j'utilise les variables "complet" et "partiel" dans le script, je n'obtiens aucun résultat à l'écran. Si, par contre, je remplace "partiel" par sa valeur directement dans le script, en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (stop==oui && $4==bar) exit
J'obtiens le résultat attendu. Si, de même, je remplace les deux variables par leur valeur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if ($4==foo) stop=oui
if (stop==oui && $4==bar) exit
... j'obtiens toujours le résultat attendu. Mais, si je remplace uniquement la première variable par sa valeur, je n'ai encore aucun résultat à l'écran.

D'où vient cette bizarrerie ? Dois-je corriger quelque chose dans ma manière de tester la valeur des variables ?