Un documento Here chiamato anche heredoc , documento online o anche documento "here" è un modo per dichiarare una stringa di caratteri in interpreti di comandi come shell Unix ( sh , ksh , csh , bash , zsh ) e in linguaggi di programmazione o script come Perl , PHP , Python , Ruby e JCL . Conserva tutte le interruzioni di riga e gli spazi nel testo, inclusi i rientri. Alcune lingue consentono l'interpretazione variabile nella stringa.
La sintassi più comune è una coppia di <<parentesi angolari seguite da un delimitatore, seguita nella riga successiva dalla prima riga dell'heredoc, chiusa alla fine dal delimitatore sulla propria riga.
Se la coppia di galloni è seguita immediatamente da un trattino, <<-tutte le schede all'inizio della riga heredoc verranno eliminate durante l'interpretazione del comando. Ciò consente di indentare il contenuto del heredoc rispetto al resto dello script e garantire una migliore leggibilità.
Andiamo qui un documento qui nello standard input del comando rpm della shell Unix , in modo da scrivere tutto in maiuscolo:
$ tr a-z A-Z <<FIN > oui oui oui c est moi Belzébuth ! > FIN OUI OUI OUI C EST MOI BELZéBUTH !FINè usato come delimitatore del documento here , quindi questo documento è nel mezzo FIN. OUI OUI OUI C'EST MOI BELZÉBUTH !è il risultato del comando. >è un prompt che indica che la modifica della riga di comando non è ancora completa.
È possibile interpolare una variabile di shell nel documento qui :
cat <<MON_NOM_EST > Mon nom est $LOGNAME > MON_NOM_EST Mon nom est jeanpierreLa sintassi nowdoc è una variante di heredoc che consiste nell'aggiungere virgolette singole attorno al nome e che non interpreta le variabili. Esempio in PHP:
echo <<<'MON_NOM_EST' Mon nom est $LOGNAME MON_NOM_EST // Affiche : Mon nom est $LOGNAME