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.