Co se liší mezi “ < < -EOF ” a “ < < EOF ” v bash skriptu? [duplicate]

Tato otázka již má odpovědi zde :

Komentáře

Answer

<<-EOF bude ignorovat úvodní karty ve vašem heredoc, zatímco <<EOF nebude. Tedy:

cat <<EOF Line 1 Line 2 EOF 

vyprodukuje

 Line 1 Line 2 

while

cat <<-EOF Line 1 Line 2 EOF 

vytváří

Line 1 Line 2 

odpověď

Pokud používáte <<-EOF, doporučuji manuálovou stránku Bourne Shell:

Pokud je však spojovník (-) připojen k < <:

  1. úvodní karty jsou ze slova odstraněny před přečtením vstupu do shellu (ale po substituce parametrů a příkazů se provádí ve Wordu);

  2. úvodní karty jsou při čtení a před porovnáním každého řádku se slovem odstraněny ze vstupu shellu; a

  3. vstup shellu se čte až k prvnímu řádku, který doslova odpovídá výslednému slovu, nebo k EOF.

Takže <<- umožňuje odsazení obsahu tohoto dokumentu pro lepší čitelnost.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *