Wat is het verschil tussen “ < < -EOF ” en “ < < EOF ” in bash-script? [duplicate]

Deze vraag heeft hier al antwoorden :

Reacties

Antwoord

<<-EOF negeert leidende tabs in uw heredoc, terwijl <<EOF dat niet doet. Dus:

cat <<EOF Line 1 Line 2 EOF 

zal produceren

 Line 1 Line 2 

terwijl

cat <<-EOF Line 1 Line 2 EOF 

produceert

Line 1 Line 2 

Antwoord

Als je <<-EOF gebruikt, raad ik de manpage van de Bourne Shell aan:

Als echter het koppelteken (-) wordt toegevoegd aan < <:

  1. leidende tabs worden van het woord verwijderd voordat de shell-invoer wordt gelezen (maar na vervanging van parameter en commando gebeurt op woord);

  2. leidende tabs worden verwijderd uit de shell-invoer terwijl deze wordt gelezen en voordat elke regel wordt vergeleken met woord; en

  3. shell-invoer wordt gelezen tot aan de eerste regel die letterlijk overeenkomt met het resulterende woord, of naar een EOF.

Dus <<- maakt het mogelijk om de inhoud van het document hier te laten inspringen voor betere leesbaarheid.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *