This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: bash - $@ vs shift inconsistent


$ bash --version
GNU bash, version 2.03.0(2)-release (i686-pc-cygwin)
Copyright 1998 Free Software Foundation, Inc.

Following is the output of your test cases, using the above version of
bash.  spaces1 uses the "for" loop and "$@", spaces2 uses the "while"
loop with "$1" and "shift":

$ spaces1 "a  b c" "there are 2 tabs:            :" "and a third arg"
a  b c
there are 2 tabs:                :
and a third

$ spaces2 "a  b c" "there are 2 tabs:            :" "and a third arg"
a  b c
there are 2 tabs:                :
and a third

I cut and pasted the above from my cygwin bash window.  Note that the
tab characters _were_ there, they just didn't translate in the cut/paste
;-)

Bob

Dirk Fieldhouse wrote:
> 
> I'm not sure that this is a specific CYGWIN issue, but I don't have access to a bash on a machine that allows spaces in filenames (surely the underscore character was invented to avoid these ...)
> 
> In bash 2.01.1 (b20.1/W95B), the following sequences which should have identical behaviour do not:
> 
> #!/bin/bash
> for arg in "$@" ; do
>     echo "$arg" # splits "arg with spaces" into 3 args
>     done
> 
> #!/bin/bash
> while [ "$1" ] ; do
>     echo "$1"  # maintains "arg with spaces" as one argument
>     shift
>     done
> 
> I haven't tested these against ash, nor with the latest bash release (2.03?), and I would be delighted to hear that this is a historical problem.
> 
> I am sure that the second behaviour is correct, especially given the bash manual's description of $@.
> 
> --
> Dirk Fieldhouse                 Logica UK Limited
> fieldhouse@logica.com           75 Hampstead Road
> c=gb;a=attmail;p=logica;        London NW1 2PL
> o=LOGICA;ou1=UK;s=fieldhouse    UK
> +44 (20) 7637 9111
> - not speaking for Logica
> 
> --
> Want to unsubscribe from this list?
> Send a message to cygwin-unsubscribe@sourceware.cygnus.com

-- 
Bob McGowan
Staff Software Quality Engineer
VERITAS Software
rmcgowan@veritas.com

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]