Re: Perte de valeur d'une variable dans un script KSH

トップ ページ

このメッセージに返信
著者: Romain Touzé
日付:  
To: marc.terrier
CC: guilde
題目: 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
>




--
Romain Touzé
@romaintouze