2011-07-21 3 views
0

Quelqu'un peut-il me dire ce que je fais mal avec set flag1 .. Je reçois une erreur de flag1: Undefined variable.tc shell script: variable indéfinie

if($notLoaded1 > 0) then 
    echo "Rows not loaded due to data errors in first load: $notLoaded1" 
    set flag1=1 
endif 

if($notLoaded2 > 0) then 
    echo "Rows not loaded due to data errors in second load: $notLoaded2" 
    set flag2=1 
endif 

if($notLoaded3 > 0) then 
    echo "Rows not loaded due to data errors in third load: $notLoaded3" 
    set flag3=1 
endif 

echo $flag1 
echo $flag2 
echo $flag3 

est-il un moyen de vérifier les trois d'entre eux dans une instruction if ou plutôt que d'utiliser 3 si les déclarations

if ($flag1 > 0) then 
    exit 1 
endif 

if ($flag2 > 0) then 
    exit 1 
endif 

if ($flag3 > 0) then 
    exit 1 
endif 

Merci

Répondre

0

De quoi avez-vous besoin de 3 variables de drapeau?

set error=0 

if ($notLoaded1 > 0) then 
    echo "Rows not loaded due to data errors in first load: $notLoaded1" 
    set error=1 
endif 

if ($notLoaded2 > 0) then 
    echo "Rows not loaded due to data errors in second load: $notLoaded2" 
    set error=1 
endif 

if ($notLoaded3 > 0) then 
    echo "Rows not loaded due to data errors in third load: $notLoaded3" 
    set error=1 
endif 

if ($error) then 
    exit 1 
endif 
+0

merci beaucoup .. travaillé parfaitement bien – Jack

0

flag1 ne se prépare si $notLoaded1 est supérieur à 0. Donc, si c'est zéro, vous n'avez pas de $ flag1.

Je vous suggère d'initialiser ces trois variables valeurs par défaut à l'avance:

set flag1=0 
if (...) the 
    set flag1=1 
    echo 'Rows not loaded...' 
endif 

qui va garantir que flag1 existe toujours.