#1 Le 27/11/2014, à 11:34
- wolf85kunst
Comment Interpreter des variables dans un fichier [RESOLU]
Bonjour à tous,
Je rencontre un soucis concernant l'interprétation de variables bash présente dans un fichier texte. Je m'explique :
Je crée mon fichier :
echo "Ceci est un $var" >>monfichier.txt
J'initialise ma variable :
var='test'
Je stock le contenu du fichier dans une variable :
fic=`cat monfichier.txt`
Lors de l’exécution de la commande : cat fic ; j'aimerai obtenir "Ceci est un test", mais cette commande me retourne : "Ceci est un $var"...
Auriez-vous un idée ?
Merci pour votre aide.
Dernière modification par wolf85kunst (Le 11/02/2015, à 13:29)
Les raisonnables ont duré, les passionnés ont vécu.
-- 10.04 Lucid Lynx --
Hors ligne
#2 Le 27/11/2014, à 12:58
- Hizoka
Re : Comment Interpreter des variables dans un fichier [RESOLU]
Salut
echo "Ceci est un $var" >>monfichier.txt
Ta commande va changer le nom de la variable par sa valeur ou rien si var n'existe pas.
Cela va écrire "Ceci est un " dans ton fichier monfichier.txt
echo "Ceci est un \$var" >> monfichier.txt
La, ça va écrire : "Ceci est un $var"
Le problème c'est que il ne sait pas qu'il faut interpréter le $var, il croit que ce n'est qu'un texte...
Alors on peut lui dire manuellement de remplacer les textes $var par sa valeur en traitant les lignes une par une :
while read line
do
echo "${line//\$var/${var}}"
done < monfichier.txt
Sinon on peut utiliser eval, mais c'est dangereux... le echo est tres important pour eviter des risques.
while read line
do
eval "echo ${line}"
done < monfichier.txt
Sans l'echo si jamais ton texte est rm -r *, eval exécutera la commande...
ou plus court et prenant en compte les lignes multiples :
eval """echo "${fic//$'\n'/@@@}" """ | sed "s/@@@/\n/g"
Donc au final
echo "1 - Ceci est un \$var" >> monfichier.txt
echo "2 - Ceci est un \$var" >> monfichier.txt
while read line
do
echo "${line//\$var/${var}}"
done < monfichier.txt
#fic=`cat monfichier.txt`
fic=$(<monfichier.txt)
eval """echo "${fic//$'\n'/@@@}" """ | sed "s/@@@/\n/g"
Dernière modification par Hizoka (Le 27/11/2014, à 13:13)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 30/11/2014, à 11:42
- Hizoka
Re : Comment Interpreter des variables dans un fichier [RESOLU]
wolf85kunst => cela te va-t-il ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#4 Le 10/02/2015, à 15:04
- wolf85kunst
Re : Comment Interpreter des variables dans un fichier [RESOLU]
Merci beaucoup pour ta réponse @Hizoka ! C'est parfait pour moi
Les raisonnables ont duré, les passionnés ont vécu.
-- 10.04 Lucid Lynx --
Hors ligne
#5 Le 10/02/2015, à 17:26
- Hizoka
Re : Comment Interpreter des variables dans un fichier [RESOLU]
chouette, tu peux ajouter un petit [resolu] dans ton titre de topic alors
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne