Reacties
- Zie 3.6.6 Hier Documenten in de bash-handleiding
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 < <:
-
leidende tabs worden van het woord verwijderd voordat de shell-invoer wordt gelezen (maar na vervanging van parameter en commando gebeurt op woord);
-
leidende tabs worden verwijderd uit de shell-invoer terwijl deze wordt gelezen en voordat elke regel wordt vergeleken met woord; en
-
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.