# ne pas tenir compte des tabulations
if true
then
<<-EOF cat > /tmp/file2
Bonjour, $(whoami) c'est ${lui}, et $((0 + 0)) égale la tête à toto !
EOF
fi
Normalement ce doit être une tabulation en début de ligne, le <<-EOF cherche le "(zéro ou une infinité de tabulations)EOF" comme fin de fichier, alors qu'on lui donne "espace-espace-espace-espaceEOF", donc le document ne se termine jamais. C'est la faute à linuxfr qui transforme les tabulations en suite d'espaces ! de même il faut des tabulations en début de ligne du here doc pour qu'elles soient ignorées, si tu mets une tabulation avant le EOF mais des espaces avant le début des lignes du heredoc, ton heredoc aura des espaces en début de ligne !
C'est peut-être le seul cas en shell où l'indentation doit obligatoirement être faite avec des tabulations.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Beaucoup de boulot
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Linux pour Workgroups 3.11, le noyau prêt pour le bureau. Évalué à 4. Dernière modification le 06 septembre 2013 à 18:27.
Hum en effet, mais j'ai trouvé pourquoi :
l'erreur est ici :
Normalement ce doit être une tabulation en début de ligne, le <<-EOF cherche le "(zéro ou une infinité de tabulations)EOF" comme fin de fichier, alors qu'on lui donne "espace-espace-espace-espaceEOF", donc le document ne se termine jamais. C'est la faute à linuxfr qui transforme les tabulations en suite d'espaces ! de même il faut des tabulations en début de ligne du here doc pour qu'elles soient ignorées, si tu mets une tabulation avant le EOF mais des espaces avant le début des lignes du heredoc, ton heredoc aura des espaces en début de ligne !
C'est peut-être le seul cas en shell où l'indentation doit obligatoirement être faite avec des tabulations.
ce commentaire est sous licence cc by 4 et précédentes