Qual è la differenza tra “ < < -EOF ” e “ < < EOF ” nello script bash? [duplicate]

Questa domanda ha già una risposta qui :

Commenti

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 < <:

  1. 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);

  2. le tabulazioni iniziali vengono rimosse dallinput della shell quando viene letta e prima che ogni riga venga confrontata con la parola; e

  3. 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à.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *