O que é diferente entre “ < < -EOF ” e “ < < EOF ” no script bash? [duplicar]

Esta pergunta já tem respostas aqui :

Comentários

Resposta

<<-EOF irá ignorar as guias iniciais em seu heredoc, enquanto <<EOF não. Assim:

cat <<EOF Line 1 Line 2 EOF 

produzirá

 Line 1 Line 2 

enquanto

cat <<-EOF Line 1 Line 2 EOF 

produz

Line 1 Line 2 

Resposta

Se você usar <<-EOF, recomendo a página de manual do Bourne Shell:

Se, no entanto, o hífen (-) for anexado a < <:

  1. as guias iniciais são retiradas da palavra antes que a entrada do shell seja lida (mas depois a substituição do parâmetro e do comando é feita na palavra);

  2. as guias iniciais são retiradas da entrada do shell à medida que é lida e antes de cada linha ser comparada com a palavra; e

  3. a entrada do shell é lida até a primeira linha que corresponde literalmente à palavra resultante ou para um EOF.

Portanto, <<- permite recuar o conteúdo do documento aqui para melhor legibilidade.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *