Simon Riggs wrote:
> On Tue, 2006-12-05 at 18:16 -0500, Bruce Momjian wrote:
> > Tom Lane wrote:
> > > Bruce Momjian <bruce@momjian.us> writes:
> > > > I think the proper fix is:
> > >
> > > > <application>psql</application>, like this: <literal>echo -e
> > > > "\\x\nSELECT * FROM foo;" | psql</literal>.
> > >
> > > > I think all modern operating systems understand echo -e at this point.
> > >
> > > No, they don't, and neither does the Single Unix Spec:
> > > http://www.opengroup.org/onlinepubs/007908799/xcu/echo.html
> > >
> > > So your version of the example depends on non-standards-compliant
> > > echo behavior, which is not better than before.
> >
> > Well, at least my example works on _some_ operating systems, while the
> > previous worked on none of them, so it is _better_.
> >
> > I can't think of a good way to do this except converting the example to
> > a <programlisting> block that will not change newlines:
> >
> > echo '\x
> > SELECT * FROM foo;' | psql
> >
> > Is that what people want?
>
> Well, it works, but IMHO its not as clear.
Well, it is even worse because some versions of echo automatically
interpret backslashes, so it would have to be \\x. I am thinking we
should just leave it as I have it now, unless we want to use 'awk' or
'perl' where we know the backslash behavior.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +