Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/12/2011, à 04:34

Tomzz

Incorporer un ficher externe dans un script bash

Bonjour,

En fait tout n'est pas dans le titre, c'est un peu plus compliqué que ça wink

Je fais un script qui permet de créer et de transférer des fiches immobilières sur un site web.
( Pour les curieux c'est ici mais la version de cette page est ancienne et buggée )

Pour faciliter l'adaptation du code php généré je cherche a extraire le "template" du script pour aller le chercher dans un ficher séparé.
De cette façon je dissocie le script bash qui est sensé être figé de la trame php qui va générer la page web qui elle doit être adaptable.

Donc voila:

Dans mon script je voudrai faire un truc du genre:

echo "$(cat "${rept}/template.txt")" >> ${rept}/pop.${ref}-${org}.inc.php

(j'ai testé aussi avec eval sans trouver la bonne formule)

Mon ficher template.txt contient:

blablabla...
<img src="../${ref}-${org}.jpg" alt="Photo ${ref}-${org}">
... blablabla

Mon probleme viens du fait que j'ai besoin de faire interpréter par mon script les variables ${ref}-${org} contenues dans le fichier template.txt.
Pour obtenir par exemple:

blablabla...
<img src="../0000-1.jpg" alt="Photo 0000-1">
... blablabla

Quelqu'un aurait une idée de la bonne syntaxe pour ça:

echo "$(cat "${rept}/template.txt")" >> ${rept}/pop.${ref}-${org}.inc.php

Dernière modification par Tomzz (Le 18/12/2011, à 05:01)

Hors ligne

#2 Le 18/12/2011, à 07:26

pingouinux

Re : Incorporer un ficher externe dans un script bash

Bonjour,
Je commencerais déjà par remplacer cela

echo "$(cat "${rept}/template.txt")" >> ${rept}/pop.${ref}-${org}.inc.php

par ceci

cat "${rept}/template.txt" >> ${rept}/pop.${ref}-${org}.inc.php

Pas encore d'idée pour la suite.
Cordialement

Hors ligne

#3 Le 18/12/2011, à 07:44

pingouinux

Re : Incorporer un ficher externe dans un script bash

Voici un script qui devrait convenir (mon_script.sh) :

#! /bin/bash
echo  "cat - <<EOF"         >script_tmp
cat "${rept}/template.txt" >>script_tmp
echo "EOF"                 >>script_tmp

source script_tmp >>${rept}/pop.${ref}-${org}.inc.php

Pour le lancer :

source mon_script.sh

Dernière modification par pingouinux (Le 18/12/2011, à 07:47)

Hors ligne

#4 Le 18/12/2011, à 14:56

Tomzz

Re : Incorporer un ficher externe dans un script bash

Whaou, merci, ça marche.
Pourrai-tu m'expliquer vite fait, surtout la commande source, s'il te plait ?
(le man de source n'existe pas sad )

Dernière modification par Tomzz (Le 18/12/2011, à 15:10)

Hors ligne

#5 Le 18/12/2011, à 15:18

pingouinux

Re : Incorporer un ficher externe dans un script bash

source est une builtin command. Faire man bash et chercher SHELL BUILTIN COMMANDS.

source ./mon_script.sh
. ./mon_script.sh

sont deux commandes équivalentes, et permettent d'exécuter un script en restant dans le même shell (pour avoir accès aux variables d'environnement non exportées).

Sinon, regarde ce qu'il y a dans le fichier intermédiaire script_tmp. Si ce n'est pas clair, je détaillerai.

Hors ligne

#6 Le 21/12/2011, à 19:36

Tomzz

Re : Incorporer un ficher externe dans un script bash

Bonjour,
Pour ceux que ca intéresse, des paquets sont dispo ici.

Hors ligne