Questo è chiamato un here-doc. Praticamente prende tutto dalla prossima linea fino a una linea di marker di fine e lo presenta come input standard per il programma che stai utilizzando. La linea del marcatore finale è controllata dal testo che segue lo <<
.
A titolo di esempio, in bash
(che sono più familiarità con di Perl), il comando:
cat <<EOF
hello
goodbye
EOF
verrà eseguito cat
e quindi inviare due righe al suo standard input (il ciao e arrivederci linee). Anche Perl ha questa caratteristica sebbene la sintassi sia leggermente diversa (come ci si aspetterebbe, dato che è una lingua diversa). Tuttavia, è abbastanza vicino perché la spiegazione sia ancora valida.
Wikipedia ha an entry for this che probabilmente avresti trovato se avessi saputo che si chiamava un here-doc, ma altrimenti sarebbe piuttosto difficile capirlo.
Nei tuoi casi particolari, non v'è alcuna differenza tra l'utilizzo EOF
e PETE
, c'è una relazione tra il marcatore heredoc (il bit seguente <<
) e la fine del standard input.
Per esempio, se una delle linee di ingresso era EOF
, non si poteva davvero usare che come un indicatore in quanto lo standard input sarebbe terminato prematuramente:
cat <<EOF
This section contains the line ...
EOF
but then has more stuff
and this line following is the real ...
EOF
In tal caso, è possibile utilizzare PETE
(o qualsiasi altra cosa che non appare nel testo sulla sua stessa riga).
Ci sono altre opzioni come usare le virgolette attorno al marcatore (in modo che il rientro possa apparire migliore) e l'uso di virgolette singole o doppie per controllare la sostituzione delle variabili.
Se si passa alla pagina perlop
e si cerca <<EOF
, si spera che tutto diventi chiaro.