Maybe, the following little shell example can help:
file_pattern='-name \*.c -o -name \*.h'
eval find . $file_pattern
The stars ("*") have to be protected from being evaluated by the shell in the
second line, therefore, the backslashes. The eval command does the trick, its a
shell built-in. By the way, I'm using mksh, but the above works also in POSIX sh
like dash.
--
Best regards,
Jörg-Volker.