Condition non null pour rentrer dasn ma boucle

Condition non null pour rentrer dasn ma boucle - Shell/Batch - Programmation

Marsh Posté le 05-03-2010 à 16:09:23    

Bonjour,
 
Dans mon script, j'ai un retour NULL (vide) suite a une requete et je voudrais faire une condition sur cette valeur null.  
Comment faire ?
Je mets quelle condition pour ma boucle ?
 
 FIC_NB=$(grep '0' ${FIC_RESULTAT})
 ==> cela me retourne FIC_NB=
 
# if [ $FIC_NB -gt 0 ];
# if [ $(grep '0' ${FIC_NB}) -lt 0 ];
 
# test le resultat de la requete <>0 ?
# if [ $FIC_NB -eq NULL ];
=> Ca marche pas. . .je sais pas traduire l'element vide. ..
je sais tester si la valeur est zero mais pas si elle existe pas(NULL) !  
 
Mercii de toute aide ...

Reply

Marsh Posté le 05-03-2010 à 16:09:23   

Reply

Marsh Posté le 05-03-2010 à 16:21:31    

Je suis pas tres clair... dsl
 
Alors, hummmm ...  
 
Je lance une requete sql.  
Il est retourné :  
  soit RIEN (l'ensemble vide)  
  soit une valeur >0.  
Je voudrais juste savoir comment questionner si cette valeur est RIEN ou >0.
 
ex:
if [ $FIC_NB ....  (differend de RIEN)
if [ $FIC_NB -eq NULL ];
=> Sauf que cela ne marche pas, qq aurait une solution ?
 
Merciii

Reply

Marsh Posté le 05-03-2010 à 16:23:41    

juste après

Code :
  1. FIC_NB=$(grep '0' ${FIC_RESULTAT})


 
tu dois pouvoir faire un test sur la variable $? qui contient le code retour du grep, et donc 0 ou 1 en fonction de si qqchose à été greppé ou non...

Reply

Marsh Posté le 05-03-2010 à 16:48:20    

oui, cela  me retourne  
FIC_NB=  
ca ok mais c'est apres le PB...
 
Comment je fais ma boucle avec cette condition (VIDE)  
if [ $FIC_NB   "DIFFERENT DE NULL" ] ;          
==> je n'arrive pas a traduire le "DIFFERENT DE NULL"
 
Merciii

Reply

Marsh Posté le 05-03-2010 à 16:53:23    

je pense que tu ne m'as pas compris.

 

après

Code :
  1. FIC_NB=$(grep '0' ${FIC_RESULTAT})
 

tu mets

Code :
  1. if [ $? -eq 0 ]
  2.  echo toto;

et roulez jeunesse. (le $? contient le code retour du grep)


Message édité par pataluc le 05-03-2010 à 16:53:44
Reply

Marsh Posté le 05-03-2010 à 17:09:01    

yeppa. . merciiii  
 
pile poil ....  merciii bicoup . ..

Reply

Marsh Posté le 08-03-2010 à 10:21:07    

Petite remarque, Zero et null ( vide) c 'est identique ?
car la . . .
FIC_NB=$(grep '0' ${FIC_RESULTAT})
==>  echo $FIC_NB =
 
# test le resultat de la requete <>0 ?
if [ $? -ne "0" ]
then  bla bla bla
 ou alors je rajoute zero au resultat de mon FIC_NB , NON? Ainsi mon resultat est au minimum zero et non vide..)
et pour rajouter c'est +"0" ou & "0", ???

Reply

Marsh Posté le 08-03-2010 à 10:55:19    

fab_ouille a écrit :

Petite remarque, Zero et null ( vide) c 'est identique ?
car la . . .
FIC_NB=$(grep '0' ${FIC_RESULTAT})
==>  echo $FIC_NB =

 

# test le resultat de la requete <>0 ?
if [ $? -ne "0" ]
then  bla bla bla
 ou alors je rajoute zero au resultat de mon FIC_NB , NON? Ainsi mon resultat est au minimum zero et non vide..)
et pour rajouter c'est +"0" ou & "0", ???


rien compris. :spamafote:

 

EDIT: la 3ème lecture est meilleure. as-tu bien saisi le but de la variable $? ? c'est le code retour de la commande précédente, et non pas le résultat qu'elle te renvoie. c'est à dire que si tu fait un echo entre le grep et le if, le $? est le code retour de ton echo et pas de ton grep... tu me suis?


Message édité par pataluc le 08-03-2010 à 10:57:23
Reply

Marsh Posté le 08-03-2010 à 16:13:38    

et, oui, dsl,  de pas etre CLAIR. ....  
 
je recapitule . ..  
une requete sql me retourne soit rien soit une valeur.
si cette valeur existe, envoyer un mail. ....
 
Question :  
Le rien qui m'est retourné est zero ou NULL, est ce la meme chose pour rentrer dans mon if ?  
 
Script :
sqlplus -s $LOGINPASS @$FIC_SQL
 
if [ $? -eq 0 ]
then  
       mailx.sh ${FIC_RESULTAT} "$DESTMAIL" "Rejet en date du $DATE_JOUR"
 
Question :
Je voudrais envoyer un mail si le fichier de sortie de ma requete (.out) n'est pas null.
 
La , il me retourne toujours un mail . Que ma requete (un select) existe ou pas . ..

Reply

Marsh Posté le 08-03-2010 à 16:38:39    

c'est bien ce qu'il me semblait, tu confonds $? (le code retour de la commande) et ce qui s'affiche à l'écran par défaut.
 
tu devrais pouvoir faire ca:

Code :
  1. valeur=$(sqlplus -s $LOGINPASS @$FIC_SQL)
  2.  
  3. if [ $(($valeur + 0)) -gt 0 ]
  4. then  
  5.       mailx.sh ${FIC_RESULTAT} "$DESTMAIL" "Rejet en date du $DATE_JOUR"


 
dans ce code, je prend ce que me renvoie sqlplus, je tente d'y ajouter 0 (donc si sqlplus me renvoie rien ou autre chose qu'une valeur, j'obtiendrai 0) et ensuite si cette valeur est supérieure à 0, j'envoie le mail...

Reply

Marsh Posté le 08-03-2010 à 16:38:39   

Reply

Marsh Posté le 10-03-2010 à 09:59:29    

C top , ca,  
 
je tente, cela me semble pas mal en fait . . .lol
 
Mercii, je reveins te valider .. . .
 
Thanks a lot, man  !!!!

Reply

Marsh Posté le 10-03-2010 à 14:01:28    

c TOP. .. . .
 
tu reponds exactly a mes attentes . . .
J'ai enfin du etre clair, et toi tres comprehensif et doué, merciiiii sincerement.. ..
 
tu me retires une belle epine du pieds.  
THANKS A LOT MAN .... man thanks a lot ???? lol

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed