Here Document

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Un Here Document aussi appelé heredoc ou encore document « ici-même » est une manière de déclarer une chaîne de caractères dans les interpréteurs de commandes comme les shells Unix (sh, ksh, csh, bash, zsh) et dans les langages de programmation ou de script comme Perl, PHP, Python et Ruby. Il conserve tous les sauts de lignes et espaces dans le texte, indentation comprise. Certains langages permettent l'interprétation de variable dans la chaîne.

La syntaxe la plus courante consiste en une double paire de chevrons << suivie d'un délimiteur, suivi sur la ligne suivante par la première ligne du Heredoc, clos à la fin par le délimiteur sur sa propre ligne.

Si la paire de chevrons est immédiatement suivie d'un tiret <<- toutes les tabulations en début de ligne du Heredoc seront éliminées lors de l'interprétation de la commande. Ceci permet d'indenter le contenu du Heredoc par rapport au reste du script et assurer une meilleure lisibilité.

Exemples[modifier | modifier le code]

Shell Unix[modifier | modifier le code]

On passe ici un here document dans l'entrée standard de la commande tr du shell Unix, dans le but de mettre en majuscule toutes les minuscules :

$ tr [a-z] [A-Z] <<FIN
> oui oui oui c est moi belzebuth !
> FIN
OUI OUI OUI C EST MOI BELZEBUTH !

FIN est utilisé comme délimiteur du here document, ce dernier se trouve donc entre les deux FIN. OUI OUI OUI C'EST MOI BELZEBUTH ! est le résultat de la commande. > est une invite de prompt indiquant que l'édition de la ligne de commande n'est pas encore achevée.

Il est possible d'interpoler une variable du shell dans le here document :

cat <<MON_NOM_EST
> Mon nom est $LOGNAME
> MON_NOM_EST
Mon nom est jeanpierre