bash - $@ vs shift inconsistent

Dirk Fieldhouse fieldhouse@logica.com
Mon Feb 14 06:31:00 GMT 2000


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



More information about the Cygwin mailing list