Forum Programmation.shell Comment gerer le \ ?

Posté par  (site web personnel) .
Étiquettes : aucune
0
19
jan.
2007
echo too\toto|while read line
do
echo $line
done

Je voudrais que $line contienne too\toto et pas toototo

Le code suivant fonctionne:
echo too\\\\toto|while read line
do
echo $line
done

Et la ca m'affiche bien too\toto mais bon, je vois pas le pourquoi du comment et ca me parrait louche donc j'aimerai bien un peu d'aide!

Merci
  • # Normal...

    Posté par  . Évalué à 5.

    C'est le caractère d'échappement...
    \t donne une tabulation, \n un retour à la ligne, \r un retour chariot, etc.
    man bash devrait t'aider, sur ce coup là...
    Enfin, si tu ne veux pas que le \t soit interprété par le shell, tu as tout intérêt à mettre ta chaîne de caractères entre guillemets :
    $ echo "toto\toto"

    Voilà, j'espère que cette courte réponse te satisfera.
    • [^] # Re: Normal...

      Posté par  (site web personnel) . Évalué à 2.

      Tout betement ...

      Merci ;)
      • [^] # Re: Normal...

        Posté par  (site web personnel) . Évalué à 2.

        Et non, je me disais que j'étais pas si con que ca :)

        dans mon exemple, tu veras que c'est read qui lit la variable, je fais pas un toto="a\a" ...

        Et la je bloque sur comment faire...
        • [^] # Re: Normal...

          Posté par  (site web personnel) . Évalué à 2.

          C'est bon, j'ai ma réponse, merci le "dico linux" :)

          read -r :)

          Y'a pas moyen d'avoir des manpages pour les commande internes de bash?
          • [^] # Re: Normal...

            Posté par  . Évalué à 2.

            man bash.

            Elle sont toutes dedans. C'est ce qui fait que cette page est kilométrique ...
        • [^] # Re: Normal...

          Posté par  . Évalué à 2.

          Et si, c'était aussi con que ça...
          Comme dis l'autre, RTFM, tu ne t'en porteras que mieux...
          Un petit man read m'a mis sur la voie, et comme on est vendredi, et que j'ai envie d'être sympa, je te poste même une solution (y'en a sûrement d'autres)
          echo "too\toto"|while read -r line; do echo $line; done
          Note l'option "-r" passée à read...
          Voilà, bonne continuation !
          • [^] # Re: Normal...

            Posté par  (site web personnel) . Évalué à 2.

            bah, comment tu as fait pour avoir les manpages des commandes internes de bash?
            • [^] # Re: Normal...

              Posté par  . Évalué à 2.

              J'ai installé un {,B}LFS !
              Sans rire, je ne suis pas sûr que ce soit ce que tu penses...
              Quand je tapes "man read" au prompt, la page affichée à pour titre : "POSIX Programmer's Manual".
              Je ne pense pas que ce soit une page séparée des commandes internes de bash.
              Sinon, info://bash dans konqueror donne pleins d'informations intéressantes, plus digestes que la page de man...
            • [^] # Re: Normal...

              Posté par  (site web personnel) . Évalué à 2.

              man bash ...
            • [^] # Re: Normal...

              Posté par  . Évalué à 3.

              "help" permet d'avoir de l'aide sur les commandes internes bash. Example: $ help read

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.