Shell script issue with filenames containing spaces

view story

http://stackoverflow.com – I understand that one technique for dealing with spaces in filenames is to enclose the file name with single quotes: "'". Why is it that the following code called, "echo.sh" works on a directory containing filenames with spaces, but the program "ls.sh" does Not work, where the only difference is 'echo' replaced with 'ls'? echo.sh #!/bin/sh for f in * do echo "'$f'" done Produces: 'a b c' 'd e f' 'echo.sh' 'ls.sh' But, "ls.sh" fails: #!/bin/sh for f in * do ls "'$f'" done Produces: ls: cannot access 'a b c': No such file or directory ls: cannot access 'd e (HowTos)