Author: Romain Touzé Date: To: marc.terrier CC: guilde Subject: Re: Perte de valeur d'une variable dans un script KSH
Bonjour,
Le ksh est souvent source de problème j'ai déjà constaté le même
comportement sur un RHEL.
Première chose, tu n'as pas les mêmes implémentations de ksh sur tous
les Linux (je pense que le plus souvent, on peut trouver pdksh et
ksh93). A moins que cela ne vienne de cat ?
Le cat fichier | while read line te fait forker ce qui fait que tu
perds les modif de VARIABLE.
Je n'ai pas de shell sous la main alors je ne peux pas faire l'essai,
mais tu pourrais essayer de faire un
while read LINE; do <ton code> done << FICHIER (un truc du genre)
Mais bon c'est juste par curiosité car j'imagine que tu t'es déjà
débarrassé de cette horrible boucle !
Ce qu'il faut se rappeler est que ksh N'EST PAS portable.
>
> 01 VARIABLE="tata"
> 02 echo "DEBUG1> \${VARIABLE}='${VARIABLE}'"
> 03
> 04 cat ${REP_SOURCE}/FichierDeConfiguration.txt | while read line ; do
> 05 VARIABLE=$line
> 06 echo "DEBUG2> \${VARIABLE}='${VARIABLE}'"
> 07 if [ $? -ne 0 ] ; then
> 08 msglog $LOG_FILE 3 3001 "*ERREUR* lors de la récupération du contenu de la ligne $line"
> 09 msglog $LOG_FILE 3 3001 "*ERREUR* dans le fichier FichierDeConfiguration.txt"
> 10 f_arretInstall
> 11 fi
> 12 done
> 13
> 14 #VARIABLE=`cat ${REP_SOURCE}/FichierDeConfiguration.txt`
> 15 echo "DEBUG3> \${VARIABLE}='${VARIABLE}'"
> 16
> 17 case "${VARIABLE}" in
> 18 ...
> 19 esac
>