Bash - echapper des slashes
Bonjour à tous,
dans un script bash, je cherche à fusionner un fichier de paramétrage avec des valeurs saisies par l'opérateur :
Code:
1 2 3
| $more CreateBDD.ddl
CREATE DATABASE NOM_BDD
ON BDD_DIR |
Les champs de fusion sont NOM_BDD et BDD_DIR
J'utilise pour ca dans mon script bash une fonction :
Code:
1 2 3 4 5 6 7 8 9
| fusion_parametre() {
# @param $1 Fichier a fusionner
# @param $2 Chaine a rechercher
# @param $3 Valeur a inserer
FUSION_FICHIER=$1
FUSION_CHAMP=$2
FUSION_VALEUR=$3
sed -i s/$FUSION_CHAMP/"$FUSION_VALEUR/" $FUSION_FICHIER
} |
que j'invoque ainsi:
Code:
1 2 3 4
| read NOM_BDD
fusion_parametre NOM_BDD $NOM_BDD CreateBDD.ddl
read BDD_DIR
fusion_parametre BDD_DIR $BDD_DIR CreateBDD.ddl |
Ca marche très bien sauf dans le cas où la valeur contient des "/", sed me renvoie une erreur.
Comme les valeurs sont demandées par le script à l'opérateur, je voudrais trouver un moyen d'ajouter automatiquement un antislash pour échapper les slashes, de telle sorte que "/data/bdds/base1/" soit converti en "\/data\/bdds\/base1\/" et que sed puisse le traiter.
Des idées ??
Merci par avance
Estats