Script sh/ksh ... execution de commande avec parametres...

Gautherot Denis denis.gautherot at ferma.fr
Jeu 2 Mar 13:48:52 UTC 2006


Bonjour, j'essaye dans un script sh ou ksh peu importe (ca marche pas ni 
dans l'un ni dans l'autre), de faire la chose suivante:

               # Recuperation de la configuration des pools
               L_POOLS=`readValueFromConfigFile POOLS PoolName`
               count=1
               for vars in $L_POOLS; do
                   L_PoolName=`readValueFromConfigFile $vars poolName`
                   L_PoolMax=`readValueFromConfigFile $vars nbMax`
                   L_PoolTotal=`readValueFromConfigFile $vars nbTotal`
                                     NEMC_DEBUG_LOG "$count : 
$L_PoolName / $L_PoolMax / $L_PoolTotal"

                   # Formation des parametres de la commande a executer
                      L_params="$L_params -poolObjects \"$L_PoolName 
$L_PoolMax $L_PoolTotal\""
                   (( count += 1 ))
               done

               $MCL_CMD create -instance SLEE.POOLS -new OCL_SLK $L_params


Or a l'execution de cette sequence  (sh -x toto.sh) (extraite de mon 
script), j'obtiends l'execution suivante:

+ /opt/FERMA/bin/MCL -c create -instance SLEE.POOLS -new OCL_SLK 
-poolObjects '"BIND_REQ' 4 '4"' -poolObjects '"BIND_CONF' 4 '4"' 
-poolObjects '"UNBIND_REQ' 4 '4"' -poolObjects '"UNBIND_CONF' 4 '4"' 
-poolObjects '"CONNECT_IND' 256 '256"' -poolObjects '"CONNECT_CONF' 256 
'256"' -poolObjects '"DISCONNECT_IND' 256 '256"' -poolObjects 
'"DISCONNECT_CONF' 256 '256"' -poolObjects '"DATA_IND' 256 '256"' 
-poolObjects '"UNIDATA_IND' 256 '256"' -poolObjects '"ENABLE' 4 '4"' 
-poolObjects '"DISABLE' 4 '4"' -poolObjects '"INSTANCIATE' 4 '4"' 
-poolObjects '"TIMER' 16 '16"' -poolObjects '"DATA' 256 '256"' 
-poolObjects '"OCL' 0 '0"' -poolObjects '"START' 0 '0"' -poolObjects 
'"ABORT' 0 '0"' -poolObjects '"END' 0 '0"' -poolObjects '"EVENT' 0 '0"' 
-poolObjects '"RETURN' 0 '0"'

alors que je devrait avoir :

+ /opt/FERMA/bin/MCL -c create -instance SLEE.POOLS -new OCL_SLK 
-poolObjects "BIND_REQ 4 4" -poolObjects "BIND_CONF 4 4" -poolObjects 
"UNBIND_REQ 4 4" -poolObjects "UNBIND_CONF 4 4" -poolObjects 
"CONNECT_IND 256 256" -poolObjects "CONNECT_CONF 256 256" -poolObjects 
"DISCONNECT_IND 256 256" -poolObjects "DISCONNECT_CONF 256 256" 
-poolObjects "DATA_IND 256 256" -poolObjects "UNIDATA_IND 256 256" 
-poolObjects "ENABLE 4 4" -poolObjects "DISABLE 4 4" -poolObjects 
"INSTANCIATE 4 4" -poolObjects "TIMER 16 16" -poolObjects "DATA 256 256" 
-poolObjects "OCL 0 0" -poolObjects "START 0 0" -poolObjects "ABORT 0 0" 
-poolObjects "END 0 0" -poolObjects "EVENT 0 0" -poolObjects "RETURN 0 0"


noter en fait que le probleme est l'apparition des cotes simples au beau 
milieu de mes parametres, et du coup, mon appli "MCL" ne sait pas 
decoder ca...

en gros pour simplifier, une execution normale de ma commande devrait 
etre (pour simplifier):

/opt/FERMA/bin/MCL -c create -instance SLEE.POOLS -new OCL_SLK 
-poolObjects "BIND_REQ 4 4"

mais en fait, avec mon script, la commande reellement executee est :

/opt/FERMA/bin/MCL -c create -instance SLEE.POOLS -new OCL_SLK 
-poolObjects '"BIND_REQ' 4 '4"'

Ayant beau chercher chez mon ami google, à part des tutos simpliste, je 
n'ai rien trouvé qui puisse maider a corriger ce bug !

Quelqu'un pourait-il m'aider ? un gourou des script sh/ksh ?!

Merci d'avance !

Denis

-- 
Windows c'est comme un Tamagoshi... Même quand tu t'en occupes il meurt.
=> Linux User #354241 !






Plus d'informations sur la liste de diffusion ubuntu-fr