Script Unix
Landrain m
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
Je rencontre un souci dans le script unix que j'ai écrit.
Dans une boucle de lecture d'un fichier, j'incrémente une variable selon certaines conditions durant le traitement de la boucle. Je fais afficher également le conenu de la variable pour la mise au point. La variable affichée contient la valeur attendue.
Lorsque la boucle se termine, je fais également afficher la variable, et là, surprise, la variable est à zéro.
Je ne comprends pas.
Ci-dessous, un exemple du script.
export CRET=0
cat $VINF | while read T_Rec T_Fld1 T_Fld2
do
echo "$T_Rec|$T_Fld1"
if [ $T_Rec = "A" ]
then
# traitement a realiser.
# ....
((CRET+=1))
echo "CRET : $CRET">>$LOG
elif [ $T_Rec = "B" ]
then
# traitement a realiser.
# ....
((CRET+=1))
echo "CRET : $CRET">>$LOG
elif [ $T_Rec = "C" ]
then
# traitement a realiser.
# ....
((CRET+=1))
echo "CRET : $CRET">>$LOG
fi
echo "ETAT1 CRET : $CRET">>$LOG
done
echo "ETAT2 CRET : $CRET">>$LOG
Je rencontre un souci dans le script unix que j'ai écrit.
Dans une boucle de lecture d'un fichier, j'incrémente une variable selon certaines conditions durant le traitement de la boucle. Je fais afficher également le conenu de la variable pour la mise au point. La variable affichée contient la valeur attendue.
Lorsque la boucle se termine, je fais également afficher la variable, et là, surprise, la variable est à zéro.
Je ne comprends pas.
Ci-dessous, un exemple du script.
export CRET=0
cat $VINF | while read T_Rec T_Fld1 T_Fld2
do
echo "$T_Rec|$T_Fld1"
if [ $T_Rec = "A" ]
then
# traitement a realiser.
# ....
((CRET+=1))
echo "CRET : $CRET">>$LOG
elif [ $T_Rec = "B" ]
then
# traitement a realiser.
# ....
((CRET+=1))
echo "CRET : $CRET">>$LOG
elif [ $T_Rec = "C" ]
then
# traitement a realiser.
# ....
((CRET+=1))
echo "CRET : $CRET">>$LOG
fi
echo "ETAT1 CRET : $CRET">>$LOG
done
echo "ETAT2 CRET : $CRET">>$LOG
A voir également:
- Script Unix
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Script cmd - Guide
- Fichier executable unix ✓ - Forum MacOS
2 réponses
Salut,
Essaie comme ça :
Ou encore comme ça :
Essaie comme ça :
export CRET=0 cat $VINF | ( while read T_Rec T_Fld1 T_Fld2 do ... ... fi echo "ETAT1 CRET : $CRET">>$LOG done echo "ETAT2 CRET : $CRET">>$LOG )
Ou encore comme ça :
while read T_Rec T_Fld1 T_Fld2 do ... ... fi echo "ETAT1 CRET : $CRET">>$LOG done < $(eval echo $VINF) echo "ETAT2 CRET : $CRET">>$LOG;-))