Re: pg_ctl failure with older Bourne shells (use ${1:+"$@"})

From: "Coleman, Michael" <MKC(at)Stowers-Institute(dot)org>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: <pgsql-bugs(at)postgresql(dot)org>, <mkc(at)mathdogs(dot)com>
Subject: Re: pg_ctl failure with older Bourne shells (use ${1:+"$@"})
Date: 2002-07-19 15:02:07
Message-ID: 94F8974916A79949ACBCCCF5D3711F73060986@exchkc03.stowers-institute.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Blah. Yeah, I muffed that--don't use a colon.

Regarding Bruce's comment, you wouldn't think they're still around, but this is what /bin/sh does on Tru64 5.1. (5.1 is almost the latest version; there's a 5.1a.)

Mike

> -----Original Message-----
> From: Tom Lane [mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us]
> Sent: Friday, July 19, 2002 9:38 AM
> To: Bruce Momjian
> Cc: Coleman, Michael; pgsql-bugs(at)postgresql(dot)org; mkc(at)mathdogs(dot)com
> Subject: Re: [BUGS] pg_ctl failure with older Bourne shells (use
> ${1:+"$@"})
>
>
> Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> > Yes, I have seen this fix before. Are people still using
> shells that
> > don't handle "$@" properly? I guess so or you wouldn't
> have reported
> > it.
>
> I remember having submitted just such a patch a few years ago (for a
> different one of our scripts of course) when I was still using HPUX 9.
> I'm not sure if later HPUXen have better shells. Plain
> /bin/sh on this
> platform is ancient.
>
> > We only use "$@" in a few places so I am applying this patch.
>
> Could you check for other scripts where the same thing may have snuck
> in?
>
> BTW, O'Reilly's "Unix Power Tools" recommends
> ${1+"$@"}
> as the most portable replacement for "$@". Mike's version has :+
> which is not the same. My man page for the Bourne shell says
>
> ${parameter:+word}
> If parameter is set and is non-null,
> substitute word;
> otherwise substitute nothing.
>
> ...
>
> If the colon (:) is omitted from the above expressions,
> the shell only
> checks whether parameter is set or not.
>
> It looks to me like the book's method is more correct --- it
> won't mess
> up in the case where $1 has been explicitly given as "".
>
> regards, tom lane
>

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruce Momjian 2002-07-19 15:32:41 Re: pg_ctl failure with older Bourne shells (use ${1:+"$@"})
Previous Message Tom Lane 2002-07-19 14:37:56 Re: pg_ctl failure with older Bourne shells (use ${1:+"$@"})