# Question sur une particularité de bash

**URL:** <https://www.debian-fr.org/t/question-sur-une-particularite-de-bash/19388>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 7:22 UTC](https://www.debian-fr.org/t/question-sur-une-particularite-de-bash/19388 "2016-02-20T19:22:09Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![SpaTule](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/b5ac83/32.png) [@SpaTule](https://www.debian-fr.org/u/SpaTule)\
**Post date:** [Février 20, 2016, 7:22 UTC](https://www.debian-fr.org/t/question-sur-une-particularite-de-bash/19388/1 "2016-02-20T19:22:09Z")

</div>

Bonjour,

Désolé pour l’aspect pas très constructif de ce post mais je me pose une question au sujet de bash et de la commande echo.

Pourquoi en bash le résultat de echo “\n\n\n BlabliBlaBlou” donne

`$ echo "\n\n\n BlabliBlaBlou"
\n\n\n BlabliBlaBlou`

Alors que dans les autres shell (testé avec sh, ksh, zsh, csh) on a bien

[code]% echo “\n\n\n BlabliBlaBlou”

BlabliBlaBlou[/code]

❓❓

Par contre avec printf ça marche bien…

---

<div class="post-metadata">

**Author:** ![Niloo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/c37758/32.png) [@Niloo](https://www.debian-fr.org/u/Niloo)\
**Post date:** [Février 20, 2016, 7:22 UTC](https://www.debian-fr.org/t/question-sur-une-particularite-de-bash/19388/2 "2016-02-20T19:22:09Z")

</div>

Il faut utiliser echo -e : [pwet.fr/man/linux/commandes/echo](http://pwet.fr/man/linux/commandes/echo)

---

<div class="post-metadata">

**Author:** ![SpaTule](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/b5ac83/32.png) [@SpaTule](https://www.debian-fr.org/u/SpaTule)\
**Post date:** [Février 20, 2016, 7:22 UTC](https://www.debian-fr.org/t/question-sur-une-particularite-de-bash/19388/3 "2016-02-20T19:22:12Z")

</div>

Merci

Si je comprends bien pour avoir l’effet souhaité de cette commande on doit en principe utiliser cette option -e. Bash l’oblige, mais pas les autres shell cité plus haut donc

---

<div class="post-metadata">

**Author:** ![Shenga](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/47e85d/32.png) [@Shenga](https://www.debian-fr.org/u/Shenga)\
**Post date:** [Février 20, 2016, 7:22 UTC](https://www.debian-fr.org/t/question-sur-une-particularite-de-bash/19388/4 "2016-02-20T19:22:16Z")

</div>

En fait, il s’agit du comportement décrit par la Single Unix Specification pour le shell :

> [@](#):
>
> Enclosing characters in double-quotes ( “” ) shall preserve the literal value of all characters within the double-quotes, with the exception of the characters dollar sign, backquote, and backslash, as follows:
> 
> …
> 
> ```
> The backslash shall retain its special meaning as an escape character (see Escape Character (Backslash)) only when followed by one of the following characters when considered special:
> 
> $ ` " \ <newline>
> 
> ```

(plus d’infos ici : [http://www.unix.org/single\_unix\_specification/](http://www.unix.org/single_unix_specification/)

Donc le “\n” est envoyé tel quel à echo par bash, ce qui ne semble pas être le cas des autres shell. J’ai testé rapidement avec tcsh et il a le même résultat que bash sur une FreeBSD, mais sur Debian, on obtient bien le résultat que tu as noté. Donc, j’en conclus que nous n’avons pas la même verion que tcsh (ce que je viens d’apprendre).

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:22 UTC](https://www.debian-fr.org/t/question-sur-une-particularite-de-bash/19388/5 "2016-02-20T19:22:21Z")

</div>

Mon chère zsh fais comme le second il remplace les \n (version 4.2.3)
