=?UTF-8?Q?[CLIWiki] page ajout=C3=A9e : shell:zsh:tips:heredoc?=

Vincent Lefevre vincent at vinc17.org
Mon Apr 30 11:36:53 CEST 2007


On 2007-04-30 07:17:57 +0200, Bruno Bonfils wrote:
> On dim 29 avril, Vincent Lefevre wrote:
> 
> > > echo <<EOF \
> > > "Greetings message : $var"
> > > EOF
> > > </code>
> > 
> > Le \ n'est normalement pas nécessaire, et je dirais même qu'au
> > contraire, il ne vaut mieux pas en mettre (il pose d'ailleurs
> > des problèmes sous bash, quand on tape cela dans un shell
> > interactif: essayez de rappeler la commande dans l'historique,
> > ça ne fonctionne plus).
> 
> Ca ne fonctionne pas sans le \ chez moi

Bien sûr, c'est parce que ce n'est pas "echo" qu'il faut utiliser,
mais "cat". Ce que tu vois, c'est simplement un effet secondaire.
Par exemple,

echo <<EOF \
foo
bar
EOF

est équivalent à:

echo <<EOF foo
bar
EOF

et ne va qu'afficher "foo", puisque l'entrée standard est ignorée.
En revanche,

cat <<EOF
foo
bar
EOF

affiche bien les deux lignes, puisque "cat" prend l'entrée standard.
Et il ne faut pas mettre de \, évidemment.

-- 
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


More information about the Shell mailing list