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

Re: Bash, cat and EOF problem



On Thu, Mar 02, 2006 at 02:41:08PM +0800, LUK ShunTim wrote:

> <script1>
> cat <<EOF >>outfile
> Some words
> EOF
> </script1>
> 
> works but when it is embedded inside an if-then-fi construct like,
> 
> <script2>
> AAA=""
> if [ -z "$AAA" ]; then
>    cat <<EOF >>outfile
>    Some words
>    EOF
> fi
> </script2>
> 
> it fails with error message
> "script2: line 7: syntax error: unexpected end of file"
> 
> What have I missed?

It's not the if-then-fi causing your problem, but the indentation within.
Lose the leading spaces in the here text (unless you want your outfile to
contain "   Some words" rather than "Some words") and the limit string
("EOF").

See <http://www.tldp.org/LDP/abs/html/here-docs.html#INDENTEDLS>

HTH

dt

-- 
Dave Thayer           | Whenever you read a good book, it's like the 
Denver, Colorado USA  | author is right there, in the room talking to 
dave@thayer-boyle.com | you, which is why I don't like to read 
                      | good books. - Jack Handey "Deep Thoughts"



Reply to: