Commenti
- Vedi 3.6.6 Here Documents nel manuale di bash
Answer
<<-EOF
ignorerà le tabulazioni iniziali nel tuo heredoc, mentre <<EOF
no. Quindi:
cat <<EOF Line 1 Line 2 EOF
produrrà
Line 1 Line 2
mentre
cat <<-EOF Line 1 Line 2 EOF
produce
Line 1 Line 2
Risposta
Se usi <<-EOF
, ti consiglio la pagina man della Bourne Shell:
Se, tuttavia, il trattino (-) viene aggiunto a < <:
-
le tabulazioni iniziali vengono rimosse dalla parola prima che linput della shell venga letto (ma dopo la sostituzione di parametri e comandi viene eseguita su parola);
-
le tabulazioni iniziali vengono rimosse dallinput della shell quando viene letta e prima che ogni riga venga confrontata con la parola; e
-
linput della shell viene letto fino alla prima riga che corrisponde letteralmente alla parola risultante, o in un EOF.
Quindi <<-
consente di indentare il contenuto del documento here per una migliore leggibilità.