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 :

[ksh] Ne pas interpréter le contenu d'une chaine


Sujet :

Linux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 176
    Points : 124
    Points
    124
    Par défaut [ksh] Ne pas interpréter le contenu d'une chaine
    Bonjour,

    Je souhaite affecter une chaine de caractère à une variable en ksh.
    Cependant cette variable contient des caractères particuliers comme des *, \t, \n ... .
    J'aimerai pourvoir affecter cette chaine à ma variable sans que celle-ci ne soit interprété.

    J'ai essayé avec des ' ' ou avec des " " et cela ne semble pas marcher.

    Est ce que vous avez une idée, s'il vous plait?

    Merci

    Pierre

  2. #2
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244
    Par défaut
    Ca ne marche pas cela ?


  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Salut...

    Pour ce qui est des \, il faut les proteger...
    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    variable='\\n*coucou*\\t'
    echo $variable
    ca donne: \n*coucou*\t

    Voilaaa

    A+

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 176
    Points : 124
    Points
    124
    Par défaut
    En fait je récupère ma chaine en lisant un fichier.
    Et ensuite cette chaine je la passe directement à un script sql pour une insertion en base de données.

    Comme vous m'aviez dit qu'il fallait les protéger, j'ai utilisé sed et les expressions régulières pour mettre des \ devant mes caractères spéciaux.

    J'ai essayé avec une chaine contenant des ' et j'ai fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine=$(echo $chaine | sed "s/'/\'/g");
    Mais cela ne marche pas lorsque je passe ma variable à mon script sql les \ on disparus.

    Au cas ou cela serait mon expression régulière qui ne marcherai pas j'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine=$(echo $chaine | sed "s/'/gt/g");
    Et cela marche dans mon script sql j'ai bien toutes les ocurrences de ' qui sont remplacé par gt.

    Est ce que vous avez une idée pour m'aider à resoudre ce problème?

    Merci
    Pierre

  5. #5
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 176
    Points : 124
    Points
    124
    Par défaut
    J'ai decouvert que apparement je ne peut pas passer de \ dans une variable lorsque j'appelle un script sql car celui-ci est pris pour un caractère de fin de variable.

    Pierre

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

Discussions similaires

  1. Ne pas interpréter des caractères dans une variable.
    Par bob737 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 16/04/2015, 11h05
  2. Réponses: 2
    Dernier message: 19/03/2014, 23h18
  3. Réponses: 12
    Dernier message: 15/12/2006, 00h06
  4. [xsl] mauvaise interprétation du contenu d'une balise XML
    Par Cédric B. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/01/2006, 12h59
  5. Réponses: 2
    Dernier message: 12/01/2004, 13h56

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