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
}

Reply via email to