Condition non null pour rentrer dasn ma boucle - Shell/Batch - Programmation
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
Marsh Posté le 05-03-2010 à 16:23:41
juste après
Code :
|
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...
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
Marsh Posté le 05-03-2010 à 16:53:23
je pense que tu ne m'as pas compris.
après
Code :
|
tu mets
Code :
|
et roulez jeunesse. (le $? contient le code retour du grep)
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", ???
Marsh Posté le 08-03-2010 à 10:55:19
fab_ouille a écrit : Petite remarque, Zero et null ( vide) c 'est identique ? # test le resultat de la requete <>0 ? |
rien compris.
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?
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 . ..
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 :
|
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...
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 !!!!
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
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 ...