[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: here-documents in $(command) substitution

From: Reuti
Subject: Re: here-documents in $(command) substitution
Date: Sun, 27 Nov 2016 19:26:40 +0100

Am 27.11.2016 um 18:51 schrieb Eduardo Bustamante:

> Hi Alexey,
> Please read the specification of here-documents in the standard:
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_04
> Quoting the relevant parts:
>    The here-document shall be treated as a single word that begins
> after the next <newline> and continues until there is a line
> containing only the delimiter and a <newline>, with no <blank>
> characters in between. Then the next here-document starts, if there is
> one. [...]
>    [n]<<word
>        here-document
>    delimiter
> Delimiter (in your case the three character string "EOF"), has to be
> on its own line, with no leading or trailing blanks (or any other
> characters). If bash 3.x used to behave different, it's because it was
> buggy.
> Hence, the proper way to do a here-document inside command substitution:

My understanding was that he is referring to the strange behavior in case of a 
malformed syntax. Why is "baz" output at all then?

-- Reuti

>    hp% cat hd
>    export foo=$(cat <<EOF
>    echo bar
>    EOF
>    )
>    echo baz
>    hp% bash hd
>    baz

reply via email to

[Prev in Thread] Current Thread [Next in Thread]