Vad skiljer sig mellan “ < < -EOF ” och “ < < EOF ” i bash-skript? [duplicera]

<åt sidan class = "s-notice s-notice__info js-post-notice mb16" role = "status">

Denna fråga har redan svar här :

Kommentarer

Svar

<<-EOF ignorerar ledande flikar i din heredoc, medan <<EOF inte gör det. Således:

cat <<EOF Line 1 Line 2 EOF 

producerar

 Line 1 Line 2 

medan

cat <<-EOF Line 1 Line 2 EOF 

producerar

Line 1 Line 2 

Svar

Om du använder <<-EOF, rekommenderar jag man-sidan för Bourne Shell:

Om dock bindestrecket (-) läggs till < <:

  1. ledande flikar avlägsnas från ord innan skalingången läses (men efter parameter- och kommandosubstitution sker på ord);

  2. ledande flikar tas bort från skalinmatningen när den läses och innan varje rad jämförs med ord och

  3. skalinmatning läses upp till första raden som bokstavligen matchar det resulterande ordet, eller till en EOF.

<<- gör det möjligt att dra in innehållet i det här dokumentet för bättre läsbarhet.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *