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]

bash - $@ vs shift inconsistent



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


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