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 | |
---|
7 | which() |
---|
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.