Script perl dans bash

Résolu
must21 Messages postés 209 Statut Membre -  
must21 Messages postés 209 Statut Membre -
Salut les gens :bounce: :hello:

J'essaie d'éditer, avec un script sh sous debian etch 4, un fichier d'alias apache (.conf), suite au déplacement d'un site dans l'arborescence.
J'ai essayer des dizaines de solutions, mais rien ne semble fonctionnner.
Mon but, remplacer dans le fichier de conf "/AncienRpertoire/" par "/nouveauRepertoire/"

Note:$1 nom du fichier conf


1/
Code :

1. sudo perl -p -i -e 's/\/$DirSrc\//\/$DirDest\//gi' /etc/apache2/sites-available/$1.conf


Qd j'execute ça dans la console, ça fonctionne parfaitement, j'ai fait des echo de cette ligne dans mon script ca donne des truc du genre:

Code :

1. perl -p -i -e 's/\/betatesters\//\/alpha\//gi' /etc/apache2/sites-available/betatest.conf



Mais qd je lance en root le script .sh qui fait ça... il ne se passe rien, le fichier n'est pas modifié


2/
Code :

1. sudo sed -e 's/\/$sPlateformDirSrc\//\/$sPlateformDirDest\//g' /etc/apache2/sites-available/$1.conf


Ca m'affiche le résultat en cosole... j'ai bien esssayer de rajouter >/etc/apache2/sites-available/$1.conf, voir meme de passer par un ficher temporaire, mais ça me donne des fichiers .conf vide.



Le meilleur résultat que j'ai obtenu est celui-ci:
Code :

1. sText=`cat /etc/apache2/sites-available/$1.conf`
2. #echo ${sText//$sPlateformDirSrc/$sPlateformDirDest} > /etc/apache2/sites-available/$1.conf
3. #cat /etc/apache2/sites-available/$1.conf



mais je perds les sauts de ligne, et apache m'indique bien évidemment que le fichier n'est pas correct.



Quelqu'un pourrait me donner un coup de main plz :D
Merci d'avance. :p
A voir également:

2 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Avec "sed" essaies comme ça plutôt :
sudo sed  "s#/$sPlateformDirSrc/#/$sPlateformDirDest/#g" /etc/apache2/sites-available/$1.conf 
0
must21 Messages postés 209 Statut Membre 24
 
Merci sa marche parfaitement.
En un coup :) Chapeau !!
0