From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
Cc: | Mike Coleman <mkc(at)stowers-institute(dot)org>, 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 14:37:56 |
Message-ID: | 12720.1027089476@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Coleman, Michael | 2002-07-19 15:02:07 | Re: pg_ctl failure with older Bourne shells (use ${1:+"$@"}) |
Previous Message | Tom Lane | 2002-07-19 13:59:42 | Re: initdb problem |