Je veux faire quelque chose comme ça:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
Des idées?
Je veux faire quelque chose comme ça:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
Des idées?
Réponses:
cat <<EOF > test
My name is $NAME
EOF
ou même
cat <<==end > test
My name is $NAME
==end
A travaillé pour moi.
On dirait que lorsque vous prenez ==end
la '
variable ne se substitue pas.
ah, le voici dans la page de manuel (regardez 3.6.6):
Le format des documents ici est:
<<[-]word here-document delimiter
Aucune expansion de paramètre, substitution de commande, expansion arithmétique ou expansion de nom de chemin n'est effectuée sur Word . Si des caractères dans word sont cités, le délimiteur est le résultat de la suppression des guillemets sur word, et les lignes du document ici ne sont pas développées. Si le mot n'est pas cité, toutes les lignes du document ici sont soumises à l'expansion des paramètres, à la substitution de commande et à l'expansion arithmétique. [...]
cat << "==end" > test
), mais les guillemets durs empêchent effectivement la substitution.