Multi-ligne de chaîne avec de l'espace supplémentaire (conservé de traces)

J'ai envie d'écrire quelques textes prédéfinis dans un fichier avec le texte suivant:

text="this is line one\n
this is line two\n
this is line three"

echo -e $text > filename

Je m'attends à quelque chose comme ceci:

this is line one
this is line two
this is line three

Mais j'ai reçu ceci:

this is line one
this is line two
this is line three

Je suis positif qu'il n'y a pas d'espace après chaque \n, mais comment l'espace supplémentaire en sortir?

  • Je ne suis pas sûr mais.. comment si vous venez de taper text="this is line one\nthis is line two\nthis is line three" dans la même ligne..? (sans entrée)
  • Supprimer la \n sur chaque ligne, vous avez déjà atteint plus de saut de ligne pour passer à la nouvelle ligne
  • Vous avez déjà donné \n.Alors, pourquoi vous mettre la ligne suivante dans la nouvelle ligne? Simplement text="this is line one\nthis is line two\nthis is line three"
  • Retrait de la \n à la fin de chaque ligne provoque la sortie de tous les exécuter ensemble sur une seule ligne.
  • Aha: Mettre des guillemets autour de la "$text" dans l'écho de la ligne est cruciale. Sans eux, aucun des retours à la ligne (à la fois littéral et '\n') de travail. Avec eux, ils le font tous.
InformationsquelleAutor cizixs | 2014-05-29