On Fri, Mar 29, 2013 at 12:41:46AM -0700, Linda Walsh wrote: > include was designed to search the path for functions that > are relative paths. While the normal sourcepath allows searching for > filenames on the search path, I don't believe (please correct if I am wrong > and this works now, as it would make life much simpler) that the PATH will > be searched if you give it something like: > > source lib/Util/sourcefile.shh
Is that all you want? Here: include() { local paths dir IFS=: read -ra paths <<< "$PATH" for dir in "${paths[@]}"; do if [[ -r $dir/$1 ]]; then source "$dir/$1" return fi done echo "could not find '$1' in PATH" >&2 return 1 }