Script sh/ksh ... execution de commande avec parametres...
Coffee
inthecoffee at gmail.com
Jeu 2 Mar 14:32:58 UTC 2006
Le jeudi 02 mars 2006 à 14:48 +0100, Gautherot Denis a écrit :
> 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 !
>
>
>
essaye de lancer le mod verbeux (set -x) à mettre en 2eme ligne du
script, la première étant #!/bin/ksh
après tu regardes où ton script crée ses quotes
Plus d'informations sur la liste de diffusion ubuntu-fr