source: trunk/third/bash/examples/functions/which @ 16807

Revision 16807, 856 bytes checked in by zacheiss, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r16806, which included commits to RCS files with non-trunk default branches.
Line 
1#
2# which - emulation of `which' as it appears in FreeBSD
3#
4# usage: which [-as] command [command...]
5#
6
7which()
8{
9        local aflag sflag ES a opt
10
11        OPTIND=1
12        while builtin getopts as opt ; do
13                case "$opt" in
14                a)      aflag=-a ;;
15                s)      sflag=1 ;;
16                ?)      echo "which: usage: which [-as] command [command ...]" >&2
17                        exit 2 ;;
18                esac
19        done
20
21        (( $OPTIND > 1 )) && shift $(( $OPTIND - 1 ))
22
23        # without command arguments, exit with status 1
24        ES=1
25
26        # exit status is 0 if all commands are found, 1 if any are not found
27        for command; do
28                # if $command is a function, make sure we add -a so type
29                # will look in $PATH after finding the function
30                a=$aflag
31                case "$(builtin type -t $command)" in
32                "function")     a=-a;;
33                esac
34
35                if [ -n "$sflag" ]; then
36                        builtin type -p $a $command >/dev/null 2>&1
37                else
38                        builtin type -p $a $command
39                fi
40                ES=$?
41        done
42
43        return $ES
44}
Note: See TracBrowser for help on using the repository browser.