Echo saut de ligne dans le Bash imprime littérale \n

En Bash, essayé ceci:

echo -e "hello\nworld"

Mais il n'a pas l'impression d'un retour à la ligne, seulement \n. Comment puis-je faire imprimer le retour à la ligne?

Je suis sur Ubuntu 11.04.

  • Pour ceux qui disent "qu'il fonctionne pour moi, le comportement de l'écho varie un peu entre les versions. Certains vont même l'impression que le "-e" comme une partie de leur production. Si vous souhaitez un comportement prévisible pour quelque chose de non trivial, utiliser printf place (comme dans @qqch de réponse).
  • Je ne pouvais pas obtenir toutes les suggestions dans cette réponse, de travail, parce que, comme il s'avère, j'ai été d'essayer de l'utiliser dans une fonction qui retourne une valeur, et tous l'écho (et printf) les messages dans la fonction ont été ajoutés à la valeur de retour après avoir été individuellement dépouillé de retours à la ligne. Voici une question à ce sujet, avec un très approfondie de réponse: stackoverflow.com/questions/27872069/... C'était comme un cours de trois heures mystery tour.
  • Aussi notable: en Unix & Linux Stack Exchange, le a accepté de répondre Comment ajouter de nouvelles lignes lors de l'utilisation de l'écho
  • merci pour le lien pour une très bonne et la réponse détaillée en effet! Je pense que c'est mieux que les réponses ci-dessous.
  • echo -ne "bonjour\nworld" (vous avez besoin d'une n de drapeau à interpréter échappe) - mais comme disent les autres, différents écho des commandes peut avoir des résultats différents!
  • Je suppose que la différence entre ceux qu'elle travaille et ceux qu'il n'a pas est Mac vs Linux.

InformationsquelleAutor Sergey | 2011-12-11