On Wednesday, March 26, 2014 8:30:12 PM UTC-4, billy...@gmail.com wrote: > I tested on bash 4.3 and 3.0 > > > > testing]$ bash --version > > bash --version > > GNU bash, version 4.3.0(1)-release (x86_64-unknown-linux-gnu) > > > > In a directory I have: > > > > testing]$ ls -l > > total 16 > > -rw-r--r-- 1 hpierce hpierce 77 Mar 26 20:09 dog1 > > -rw-r--r-- 1 hpierce hpierce 77 Mar 26 20:09 dog2 > > -rw-r--r-- 1 hpierce hpierce 77 Mar 26 20:09 dog3 > > -rw-r--r-- 1 hpierce hpierce 0 Mar 26 20:07 dog4 > > -rwxr-xr-x 1 hpierce hpierce 80 Mar 26 20:02 test > > > > dog1, dog2, and dog3 have content. dog4 is empty. > > > > test is a simple script: > > > > testing]$ cat test > > #!/bin/bash > > FILE=$1 > > echo $FILE > > if [ ! -e $FILE ] > > then > > echo "Usage: $0 <file>" > > exit 1 > > else > > echo $FILE exists > > fi > > > > Here's a regular run: > > > > testing]$ for f in *; do ./test $f; done > > dog1 > > dog1 exists > > dog2 > > dog2 exists > > dog3 > > dog3 exists > > dog4 > > dog4 exists > > test > > test exists > > > > Now I add a ls: > > > > testing]$ for f in `ls dog*`; do ./test $f; done > > dog1 > > Usage: ./test <file> > > dog2 > > Usage: ./test <file> > > dog3 > > Usage: ./test <file> > > dog4 > > Usage: ./test <file> > > > > So I moved it to an earlier version of bash > > > > testing]$ bash --version > > bash --version > > GNU bash, version 3.00.15(1)-release (x86_64-redhat-linux-gnu) > > > > testing]$ for f in `ls dog*`; do ./test $f; done > > dog1 > > dog1 exists > > dog2 > > dog2 exists > > dog3 > > dog3 exists > > dog4 > > dog4 exists
I have a script which goes out and converts all my filenames (/home/user/) with spaces into filenames with underscores. I also convert them to lower case. There is something messed up in my .dir_colors file. I just thought it was interesting that for f in `ls dog*` doesn't work but for f in `find dog*` does work.