Branden Robinson wrote:
> Is the following construction POSIXly correct?
>
> foo=$(cat <<EOF
> Foo bar baz quux.
> EOF)
>
> ash (and dash, which is derived from ash) choke on this, and seem to
> ignore everything on the same line as, but after, the here-document
> terminator word.
I just dealt with a similar issue writing an ultra-portable shell script.
The correct construction using the old backslash form is:
foo=`cat <<EOF
Foo bar baz quux.
EOF
`
Note that the closing backquote is on the *next* line.
I presume that the 'modern' form would be:
foo=$(cat <<EOF
Foo bar baz quux.
EOF
)
> bash (--posix) and (pd)ksh have no problem with it.
>
> I would be most grateful if someone access to the POSIX spec could
> provide some insight into this.
--
Nathanael Nerode <neroden at gcc.gnu.org>
US citizens: if you're considering voting for Bush, look at these first:
http://www.misleader.org/http://www.cbc.ca/news/background/arar/http://www.house.gov/reform/min/politicsandscience/