shell script bug

Chris Faylor cgf@cygnus.com
Fri Jul 28 10:31:00 GMT 2000


When I said "machines" I should have said "different UNIX systems".
cgf
On Fri, Jul 28, 2000 at 10:25:44AM -0700, Bob McGowan wrote:
>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.

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /