Partage
  • Partager sur Facebook
  • Partager sur Twitter

[bash]

echapper caracteres speciaux d'une variable

    16 mai 2017 à 23:04:55

    salut à tous.

    petite question rapide, tout est dans le titre:

    j'ai une ligne du type:

    >echo "les variables $@"

    qui m'affiche tous les arguments passés en parametres de mon script.

    Sauf que quand ils contiennent des ' ou des " ou d'autres chose, ca rate.

    Bref, esque quelqu'un aurait une petite idée pour echapper facilement tous les caracteres contenus dans la variable $@ svp?

    merci d'avance :)

    • Partager sur Facebook
    • Partager sur Twitter

    Find various resources, tuturials and online tools at: https://finseckto.com

      16 mai 2017 à 23:08:30

      salut,

      tu peux nous montrer comment "ça marche pas"* ?

      * « ça marche pas » n'est pas une description.

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        17 mai 2017 à 0:18:41

        alors oui desole c'est pas tres clair.

        admettons que je lance le script (qui ne contient que cette commande):

        sh script.sh blabla truc'

        la reponse est du style:

        >

        comme quand une commande n'est pas fini et que le prompt continue d'attendre une entrée, jusqu'a ce que par exemple j'ecrive enfin un deuxieme ', qui va permettre de finir la commande. le tout sans jamais afficher les '.

        ~/Desktop$sh script.sh blabla truc'
        > dddd'
        les variables blabla truc
        dddd
        ~/Desktop$

        alors que je cherche a avoir ca:

        ~/Desktop$sh script.sh blabla truc'
        les variables blabla truc'




        -
        Edité par petitradisgris 17 mai 2017 à 0:19:22

        • Partager sur Facebook
        • Partager sur Twitter

        Find various resources, tuturials and online tools at: https://finseckto.com

          17 mai 2017 à 2:40:05

          il faut protéger l'apostrophe (comme tous les caractères spéciaux) :
          $ maFonc() { echo "$@";}
          $ maFonc bla\'
          bla'

          -
          Edité par dantonq 17 mai 2017 à 2:40:18

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            17 mai 2017 à 20:03:08

            Oui merci pour cette réponse. j'ai déja pensé à l'échappement de caractère.

            Mais en gros je voudrais faire comme une fonction qui permet d'ecrire un texte de facon intuitive.

            Je veux pouvoir écrire:

            maFonc salut je m'appel petitradisgris et j'ai des c@r@//ct"'eres spéciaux dans l'texte "tu connais"?

            et que ca me sorte:

            salut je m'appel petitradisgris et j'ai des c@r@//ct"'eres spéciaux dans l'texte "tu connais"

            Sans m'embeter à echaper tous les caractères spéciaux pendant que j'écris la ligne.

            J'ai un peu essayé avec sed mais sans succes, toujours le meme probleme

            • Partager sur Facebook
            • Partager sur Twitter

            Find various resources, tuturials and online tools at: https://finseckto.com

              17 mai 2017 à 20:31:52

              àmha, il va falloir réécrire tout le shell, pour qu'il ne reconnaisse pas les caractères spéciaux.

              ou alors, tu pourrais écrire la fonction pour qu'elle n'utilise pas les paramètres positionnels, mais demande à l'utilisateur d'entrer le texte, avec un read...

              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

              [bash]

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown