On Sun, 28 Jun 2015 14:46:01 +0200
Patrice Clement <monsie...@gentoo.org> wrote:

> man 3 glob
> man 3 fnmatch
> man 1 bash -> read the section called "Pattern Matching" under
> "EXPANSION".
> 
> in this case, $(ls) would unnecessarily spawn a subshell for listing
> files. You can often get the same result by using wildcard expansion
> (or globbing) like Michal said:
> 
> for lang in *; do
>     ...
> done
> 
> It is often faster.


and it avoids aliases:

/etc $ echo $(ls)
total 1.7M drwxr-xr-x 4 root root 4.0K Aug 29 2014 acpi -rw-r--r-- 1
root root 44 Oct 6 2014 adjtime drwxr-xr-x 2 root root 4.0K Jun 26
19:27 adobe drwxr-xr-x 3 root root 4.0K Mar 22 15:46 ardour3 drwxr-xr-x
3 root root 4.0K May 8 13:14 ardour4 drwxr-xr-x 2 root root 4.0K Jun 15
17:06 at-spi2 drwxr-xr-x 3 root root etc.

I doubt that is what is wanted



However, beware of empty directories:

/tmp/toto $ ls
total 0
/tmp/toto $ for a in *; do echo $a; done                                        
                                                                                
                                                                                
               
*

Reply via email to