| 
									
										
										
										
											1996-08-26 18:22:31 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # An almost-ksh compatible `whence' command.  This is as hairy as it is  | 
					
						
							|  |  |  | # because of the desire to exactly mimic ksh. | 
					
						
							|  |  |  | #  | 
					
						
							|  |  |  | # This depends somewhat on knowing the format of the output of the bash | 
					
						
							|  |  |  | # `builtin type' command. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Chet Ramey | 
					
						
							|  |  |  | # chet@ins.CWRU.Edu | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2014-02-26 09:36:43 -05:00
										 |  |  | # | 
					
						
							|  |  |  | #  Chet Ramey <chet.ramey@case.edu> | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #  Copyright 1994 Chester Ramey | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #   This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  | #   it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  | #   the Free Software Foundation; either version 2, or (at your option) | 
					
						
							|  |  |  | #   any later version. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #   TThis program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  | #   but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  | #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  | #   GNU General Public License for more details. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #   You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | #   along with this program; if not, write to the Free Software Foundation, | 
					
						
							|  |  |  | #   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-08-26 18:22:31 +00:00
										 |  |  | whence() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	local vflag= path= | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if [ "$#" = "0" ] ; then | 
					
						
							|  |  |  | 		echo "whence: argument expected" | 
					
						
							|  |  |  | 		return 1 | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 	case "$1" in | 
					
						
							|  |  |  | 		-v) vflag=1 | 
					
						
							|  |  |  | 		    shift 1 | 
					
						
							|  |  |  | 		    ;; | 
					
						
							|  |  |  | 		-*) echo "whence: bad option: $1" | 
					
						
							|  |  |  | 		    return 1 | 
					
						
							|  |  |  | 		    ;; | 
					
						
							|  |  |  | 		 *) ;; | 
					
						
							|  |  |  | 	esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if [ "$#" = "0" ] ; then | 
					
						
							|  |  |  | 		echo "whence: bad argument count" | 
					
						
							|  |  |  | 		return 1 | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	for cmd | 
					
						
							|  |  |  | 	do | 
					
						
							|  |  |  | 		if [ "$vflag" ]	 ; then | 
					
						
							|  |  |  | 			echo $(builtin type $cmd | sed 1q) | 
					
						
							|  |  |  | 		else | 
					
						
							|  |  |  | 			path=$(builtin type -path $cmd) | 
					
						
							|  |  |  | 			if [ "$path" ] ; then | 
					
						
							|  |  |  | 				echo $path | 
					
						
							|  |  |  | 			else | 
					
						
							|  |  |  | 				case "$cmd" in | 
					
						
							|  |  |  | 					/*) if [ -x "$cmd" ]; then | 
					
						
							|  |  |  | 						echo "$cmd" | 
					
						
							|  |  |  | 					    fi | 
					
						
							|  |  |  | 					    ;; | 
					
						
							|  |  |  | 					 *) case "$(builtin type -type $cmd)" in | 
					
						
							|  |  |  | 						"") ;; | 
					
						
							|  |  |  | 						 *) echo "$cmd" | 
					
						
							|  |  |  | 						    ;; | 
					
						
							|  |  |  | 					    esac | 
					
						
							|  |  |  | 					    ;; | 
					
						
							|  |  |  | 				esac | 
					
						
							|  |  |  | 			fi | 
					
						
							|  |  |  | 		fi | 
					
						
							|  |  |  | 	done | 
					
						
							|  |  |  | 	return 0 | 
					
						
							|  |  |  | } |