Bonjour

je lance une commande dans un script et je voudrais savoir si le resultat obtenu est égal à une certaine valeur ...

exemple

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
su - oracle -c "
lsnrctl stop HEXA
sqlplus -s \"/ as sysdba\" <<EOF
shutdown immediate
EOF
" | awk '{
if($0 == "Database closed.")
 compt1 = 1
if($0 == "Database dismounted.")
 compt2 = 1
if($0 == "ORACLE instance shut down.")
 compt3 = 1
}
END{
total =  compt1 + compt2 + compt3
{
if( total != 3)
 
print "1"
}
}
'
voici le script que je lance donc si tout se déroule bien il renvoie "1" ... par exemple si vous lancer certaines commandes sous linux et que l'on fait
echo $? on obtient 1 ou 0 ce que je veux dire c'est que la commande echo $?
permet de savoir si le script s'est bien déroulé .. et ce que je voudrais obtenir sans avoir à recupérer le resultat via une variable comme ceci


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
 
RESULT=$(su - oracle -c "
lsnrctl stop HEXA
sqlplus -s \"/ as sysdba\" <<EOF
shutdown immediate
EOF
" | awk '{
if($0 == "Database closed.")
 compt1 = 1
if($0 == "Database dismounted.")
 compt2 = 1
if($0 == "ORACLE instance shut down.")
 compt3 = 1
}
END{
total =  compt1 + compt2 + compt3
{
if( total != 3)
 
print "1"
}
}
'
)
 
if [ ${RESULT} eq '1' ];then
 
suite du programme 
 
 
fi
merci[/u]