delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/07/28/13:29:14

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Message-ID: <3981C218.F7E5348A@veritas.com>
Date: Fri, 28 Jul 2000 10:25:44 -0700
From: Bob McGowan <rmcgowan AT veritas DOT com>
Organization: VERITAS Software
X-Mailer: Mozilla 4.73 [en] (WinNT; U)
X-Accept-Language: en
MIME-Version: 1.0
To: cygwin AT sources DOT redhat DOT com
CC: cygwin AT sourceware DOT cygnus DOT com
Subject: Re: shell script bug
References: <20000728163013 DOT 15552 DOT qmail AT web1306 DOT mail DOT yahoo DOT com> <20000728125749 DOT A5152 AT cygnus DOT com>

Interesting.  I just tried a different script to check the "$@" versus
"$*" processing and did not see any problems with or differences in how
the 3 shells handle them.  I'm running these by invoking the desired
shell at the prompt:

	$ shell ./script

My script:

###
# "$@" with no args should be "empty"

checkat()
{
        echo $#
}

checkasterix()
{
        echo $#
}

checkat "$@"       # "empty"
checkasterix "$*"  # null string
###

The output is consistently:
0
1
when I invoke the script with no arguments.

Chris Faylor wrote:
> 
> On Fri, Jul 28, 2000 at 09:30:13AM -0700, Noel Yap wrote:
> >I have the following script asdf.sh:
> >#!/bin/sh
> >
> >if [ $# = 1 ]
> >then
> >  for v in "$@"
> >  do
> >    echo $# should be 1
> >    echo "$v"
> >  done
> >else
> >  for v in "$@"
> >  do
> >    echo $# isn\'t be 1
> >    ./asdf.sh "$v"
> >  done
> >fi
> >
> >Under bash, the output of the script is:
> >5 isn't 1
> >5 isn't 1
> >5 isn't 1
> >5 isn't 1
> >5 isn't 1
> >
> >Under sh, there is no output.
> 
> ...which is what I'd expect.
> 
> I tried this on a couple of machines and the behavior is inconsistent.
> Some print "0 isn't be 1" (sic) and some print nothing.
> 
> I would consider the triggering of the for-loop when there are no
> arguments supplied to the shell script to be a bug.

-- 
Bob McGowan
Staff Software Quality Engineer
VERITAS Software
rmcgowan AT veritas DOT com

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019