Fichier squelette et variables

14 réponses
Avatar
Ozzii
Bonjour,

J'essaye de faire quelque chose mais je pense que je m'y prend mal.
J'ai un fichier squelette avec des variables dedans que je voudrais
mettre =E0 jour par rapport =E0 mon script principal.

Script principal :
for FIC in `ls toto*.txt`
do
INPUT=3D"E:\\${FIC}"
while read -r MAQUETTE
do
echo "$MAQUETTE"
done < Fichier_Maquette
done

Fichier_Maquette:
echo ${INPUT}

Le r=E9sultat me donne ${INPUT} alors que j'attend E:\\toto1.txt
M=EAme en mettant le INPUT=3D dans le while j'ai pareil.

Dois-je mettre peut-=EAtre faire un sed dans mon while ou autre chose??

Toute aide est la bien venue. Merci par avance.

10 réponses

1 2
Avatar
Ozzii
J'ai essayé ça aussi mais NON, pareil:
IFS=''
cat -v Fichier_Maquette | while read LINE
do
echo "$LINE"
done
Avatar
Lucas Levrel
Le 20 octobre 2009, Ozzii a écrit :

echo "$LINE"



Ce serait pas plutôt : eval "$LINE" ?

Aussi, chez moi (bash), ton script donne « echo ${INPUT} » et non pas
« ${INPUT} ».

--
LL
Avatar
Stephane CHAZELAS
2009-10-20, 00:09(-07), Ozzii:
Bonjour,

J'essaye de faire quelque chose mais je pense que je m'y prend mal.
J'ai un fichier squelette avec des variables dedans que je voudrais
mettre à jour par rapport à mon script principal.

Script principal :
for FIC in `ls toto*.txt`
do
INPUT="E:${FIC}"
while read -r MAQUETTE
do
echo "$MAQUETTE"
done < Fichier_Maquette
done

Fichier_Maquette:
echo ${INPUT}

Le résultat me donne ${INPUT} alors que j'attend E:toto1.txt
Même en mettant le INPUT= dans le while j'ai pareil.

Dois-je mettre peut-être faire un sed dans mon while ou autre chose??

Toute aide est la bien venue. Merci par avance.




for FIC in toto*.txt; do
INPUT=E:$FIC
eval "cat << EOF
$(cat Fichier_Maquette)
EOF
"
done


--
Stéphane
Avatar
Ozzii
Merci à tous les deux:

j'ai fait cela:

eval "tt="$(cat Fichier_Maquette""
echo "$tt"

Il a fallu que je protège les " car dans mon fichier maquette j'ai des
( " ...

Merci.
Avatar
Stephane CHAZELAS
2009-10-21, 01:33(-07), Ozzii:
Merci à tous les deux:

j'ai fait cela:

eval "tt="$(cat Fichier_Maquette""
echo "$tt"

Il a fallu que je protège les " car dans mon fichier maquette j'ai des
( " ...


[...]

D'ou l'avantage du cat << EOF

--
Stéphane
Avatar
Ozzii
On 21 oct, 10:58, Stephane CHAZELAS
wrote:

D'ou l'avantage du cat << EOF

--
Stéphane



Merci encore et CHAPEAU BAS !!!
Avatar
Ozzii
Petite question:
Cela fonctionne presque très bien.
Voila ce que j'ai:

#! /bin/sh
eval "cat << EOF
$(cat Fichier_Maquette)
EOF
" >>${JOB}

Dans mon fichier de sorti j'ai EOF d'inséré à chaque fin de traitemen t
(après chaque fichier trouvé) de la boucle for.

Une petite idée ?

P.S: vaux mieux que j'utilise bash ou sh (je suis sous cygwin)?
Avatar
Stephane CHAZELAS
2009-10-22, 01:12(-07), Ozzii:
Petite question:
Cela fonctionne presque très bien.
Voila ce que j'ai:

#! /bin/sh
eval "cat << EOF
$(cat Fichier_Maquette)
EOF
" >>${JOB}

Dans mon fichier de sorti j'ai EOF d'inséré à chaque fin de traitement
(après chaque fichier trouvé) de la boucle for.

Une petite idée ?



Ne pas indenter le "EOF"

P.S: vaux mieux que j'utilise bash ou sh (je suis sous cygwin)?



Pas d'importance, ce code est standard.


--
Stéphane
Avatar
Ozzii
On 22 oct, 11:16, Stephane CHAZELAS
wrote:

Ne pas indenter le "EOF"

> P.S: vaux mieux que j'utilise bash ou sh (je suis sous cygwin)?

Pas d'importance, ce code est standard.

--
Stéphane



En fait il n'est pas indenté tout comme le "$(cat" (sinon c'est décal é
dans le fichier de sorti).
Déjà fait cette expérience lors de la mise en place de ta commande.
Avatar
Lucas Levrel
Le 22 octobre 2009, Ozzii a écrit :

En fait il n'est pas indenté tout comme le "$(cat" (sinon c'est décalé
dans le fichier de sorti).
Déjà fait cette expérience lors de la mise en place de ta commande.



Tu devrais poster un exemple complet (syntaxe de la boucle, contenu de
tous les scripts et fichiers)

--
LL
1 2