IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Bash - echapper des slashes


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    dev
    Inscrit en
    Octobre 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Octobre 2002
    Messages : 53
    Points : 61
    Points
    61
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    tu fais un premiers sed qui converti tout \/ en \\/

    chaine= `echo $chaine1 |sed -e "s/\//\\//""`



    ça doit suffire à inserer 1 \ avant chaque / dans la chaine

  3. #3
    Membre du Club
    Profil pro
    dev
    Inscrit en
    Octobre 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Octobre 2002
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    Merci pour ta réponse rapide, voila ce que j'ai fait en adaptant ta solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BDD_DIR=$VALEUR
    # on echappe les slashes
    SLASH="\/"
    ANTI_SLASH_SLASH="\\\\\/"
    BDD_DIR=`echo $BDD_DIR | sed -e "s/$SLASH/$ANTI_SLASH_SLASH/g"`
    A+
    Estats

  4. #4
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    je me disais bien que dans cette ordre d"idée ça marcherai...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Doublement des slash
    Par ducker88 dans le forum C#
    Réponses: 2
    Dernier message: 26/03/2007, 13h35
  2. Réponses: 3
    Dernier message: 09/02/2007, 22h39
  3. [SQL] Interprétation des slashes
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/01/2007, 19h45
  4. Réponses: 10
    Dernier message: 03/09/2004, 17h26
  5. integrer des slashs
    Par freums dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 01/07/2004, 20h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo