If elif fi syntaxe ksh

Résolu/Fermé
bma23 Messages postés 4 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 23 juin 2009 - 23 juin 2009 à 11:51
bma23 Messages postés 4 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 23 juin 2009 - 23 juin 2009 à 14:48
Bonjour,
J'ai essayé déexécuter ceci mais apparement l'éxcution s'arrête au premier if:

if [ PUSERDEF="BCR_U" ] ; then
PARM="dest_trt_dqm_U"
ENVIRONNEMENT="Developpement"
elif [ PUSERDEF="BCR_F" ] ; then
PARM="dest_trt_dqm_F"
ENVIRONNEMENT="Integration Logica"
elif [ PUSERDEF="BCR_I" ] ; then
PARM="dest_trt_dqm_I"
ENVIRONNEMENT="Integration"
elif [ PUSERDEF="BCR_V" ] ; then
PARM="dest_trt_dqm_V"
ENVIRONNEMENT="Validation"
elif [ PUSERDEF="BCR_P" ] ; then
PARM="dest_trt_dqm_P"
ENVIRONNEMENT="Production"
LETTRE="X"
fi

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
23 juin 2009 à 12:06
Salut,

Il faut des espaces autour du signe égal et le signe "$" (dollar) pour définir ta variable "$PUSERDEF" :
if [ "$PUSERDEF" = "blabla" ]; then...
1
bma23 Messages postés 4 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 23 juin 2009
23 juin 2009 à 12:39
merci pour ta réponse.

Le soucis est que je ne connais pas la syntaxe en ksh alors j'ai essayé ceci:
"$LETTRE" = "U"
if [ "$PUSERDEF" = "BCR_U" ] ; then
"$PARM" = "dest_trt_dqm_U"
"$ENVIRONNEMENT" = "Developpement"
elif [ "$PUSERDEF" = "BCR_F" ] ; then
"$PARM" = "dest_trt_dqm_F"
"$ENVIRONNEMENT" = "Integration Logica"
elif [ "$PUSERDEF" = "BCR_I" ] ; then
"$PARM" = "dest_trt_dqm_I"
"$ENVIRONNEMENT" = "Integration"
elif [ "$PUSERDEF" ="BCR_V" ] ; then
"$PARM" = "dest_trt_dqm_V"
"$ENVIRONNEMENT" = "Validation"
elif [ "$PUSERDEF" = "BCR_P" ] ; then
"$PARM" = "dest_trt_dqm_P"
"$ENVIRONNEMENT" = "Production"
"$LETTRE" = "X"
fi

sachant que la variable PUSERDEF est définie en amont tel que PUSERDEF=$USER_DEF (un paramètre dans le .profile) par contre les variables ENVIRONNEMENT, PARM, LETTRE ne sont définis nulle part je viens de les ajouter dans mon script.

Merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 juin 2009 à 12:00
bonjour,
et c'est en quel langage ton truc?
0
bma23 Messages postés 4 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 23 juin 2009
23 juin 2009 à 12:21
c'est du ksh.

les variables sont PARM, ENVIRONNEMENT, PUSERDEF.
Si la variable PUSERDEF = BCR_U => la valeur de la variable PARM est dest_trt_dqm_U et la valeur de la variable ENVIRONNEMENT est Developpement etc...
je n'ai jamais dévlopper en ksh donc ça doit être un simple problème de variable et de syntaxe..
Merci pour votre aide..
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
23 juin 2009 à 12:47
0
bma23 Messages postés 4 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 23 juin 2009
23 juin 2009 à 14:48
Merci jcipy pour l'aide apportée. J'ai pu corriger le problème grâce à ton cours voici la réponse:

LETTRE=U
if $PUSERDEF = "BCR_U" ; then
PARM="dest_trt_dqm_U"
ENVIRONNEMENT="Developpement"
elif $PUSERDEF = "BCR_F" ; then
PARM="dest_trt_dqm_F"
ENVIRONNEMENT="Integration"
elif $PUSERDEF = "BCR_I" ; then
PARM="dest_trt_dqm_I"
ENVIRONNEMENT="Integration"
elif $PUSERDEF ="BCR_V" ; then
PARM="dest_trt_dqm_V"
ENVIRONNEMENT="Validation"
elif $PUSERDEF = "BCR_P" ; then
PARM=dest_trt_dqm_P
ENVIRONNEMENT=Production
LETTRE="X"
fi
0