On Fri, 21 Aug 2020 at 16:00, Stefano Garzarella <sgarz...@redhat.com> wrote: > > If there are less than 2 arguments in version_ge(), the second shift > prints this error: > ../configure: line 232: shift: shift count out of range > > Let's shut it up, since we're expecting this situation. > > Signed-off-by: Stefano Garzarella <sgarz...@redhat.com> > --- > configure | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/configure b/configure > index 4e5fe33211..de4bd0df36 100755 > --- a/configure > +++ b/configure > @@ -229,7 +229,7 @@ version_ge () { > set x $local_ver1 > local_first=${2-0} > # shift 2 does nothing if there are less than 2 arguments > - shift; shift > + shift; shift 2>/dev/null
POSIX says https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#shift "If the n operand is invalid or is greater than "$#", this may be considered a syntax error and a non-interactive shell may exit" so I think that we need to actually avoid the excess shift, not just suppress any warning it might print. (I'm not sure Philippe's "shift || shift" patch can work for that, though, as the exit status doesn't distinguish "valid shift but don't do it again" from "valid shift and more args to come".) thanks -- PMM