# # which - emulation of `which' as it appears in FreeBSD # # usage: which [-as] command [command...] # which() { local aflag sflag ES a opt OPTIND=1 while builtin getopts as opt ; do case "$opt" in a) aflag=-a ;; s) sflag=1 ;; ?) echo "which: usage: which [-as] command [command ...]" >&2 exit 2 ;; esac done (( $OPTIND > 1 )) && shift $(( $OPTIND - 1 )) # without command arguments, exit with status 1 ES=1 # exit status is 0 if all commands are found, 1 if any are not found for command; do # if $command is a function, make sure we add -a so type # will look in $PATH after finding the function a=$aflag case "$(builtin type -t $command)" in "function") a=-a;; esac if [ -n "$sflag" ]; then builtin type -p $a $command >/dev/null 2>&1 else builtin type -p $a $command fi ES=$? done return $ES }