[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ale] Re: Q: Bash: test for existence of any file matching a glib pattern.



Never mind. "shopt -s nullglob" makes things work as I need.

Thanks,

-- Joe

Joe Knapka <jknapka at kneuro.net> writes:

> Hi folks,
> 
> A simple Bash question that google, the Bash FAQ, and the
> comp.unix.shell FAQ have failed to answer. (Possibly man bash would
> answer it, but I find I usually fall asleep before finding the
> particular tidbit I'm looking for in that horrendously gigantic
> manpage. Plus I expect there are folks on this list who do this
> kind of thing six times before breakfast.)
> 
> I need to do this:
> 
> if (any file matching *.h exists); then do something; fi
> 
> The "any file matching *.h" test is defeating me. No variety of "[ -e
> ... ]" seems to work (quoting the "*.h" different ways, and so
> forth). I've also tried
> 
> for f in *.h ; do something to $f ; done
> 
> That works except when there are *not* any *.h files, in which case it
> binds f to the literal string "*.h" instead, which causes bad stuff to
> happen in the "do something to $f" part. Since I'm doing this inside
> of a generic rule in a common make file for a development tree, I
> really need the command to work properly even in directories that
> don't contain any *.h files (in which case it should simply do
> nothing, not cause an error condition).
> 
> Any assistance is appreciated.
> 
> Thanks,
> 
> -- Joe
> 
> -- 
> "We sat and watched as this whole       <-- (Died Pretty -- "Springenfall")
>  blue sky turned to black..."
> ... Re-defeat Bush in '04.
> --
> pub  1024D/BA496D2B 2004-05-14 Joseph A Knapka
>      Key fingerprint = 3BA2 FE72 3CBA D4C2 21E4  C9B4 3230 94D7 BA49 6D2B
> If you really want to get my attention, send mail to
> jknapka .at. kneuro .dot. net.
> 
> 

-- 
"We sat and watched as this whole       <-- (Died Pretty -- "Springenfall")
 blue sky turned to black..."
... Re-defeat Bush in '04.
--
pub  1024D/BA496D2B 2004-05-14 Joseph A Knapka
     Key fingerprint = 3BA2 FE72 3CBA D4C2 21E4  C9B4 3230 94D7 BA49 6D2B
If you really want to get my attention, send mail to
jknapka .at. kneuro .dot. net.