1# 2# whatis -- and implementation of the 10th Edition Unix sh builtin `whatis' 3# command. 4# 5# usage: whatis arg [...] 6# 7# For each argument, whatis prints the associated value as a parameter, 8# builtin, function, alias, or executable file as appropriate. In each 9# case, the value is printed in a form which would yield the same value 10# if typed as input to the shell itself. 11# 12 13whatis() 14{ 15 local wusage='usage: whatis arg [arg...]' 16 local fail=0 17 18 if [ $# -eq 0 ] ; then 19 echo "$wusage" 20 return 1 21 fi 22 23 for arg 24 do 25 case $(builtin type -type $arg 2>/dev/null) in 26 "alias") 27 builtin alias "$arg" 28 ;; 29 "function") 30 builtin type "$arg" | sed 1d 31 ;; 32 "builtin") 33 echo builtin "$arg" 34 ;; 35 "file") 36 builtin type -path "$arg" 37 ;; 38 *) 39 # OK, we could have a variable, or we could have nada 40 if [ "$(eval echo \${$arg+set})" = "set" ] ; then 41 # It is a variable, and it is set 42 echo -n "$arg=" 43 eval echo '\"'\$$arg'\"' 44 else 45 echo whatis: $arg: not found 46 fail=1 47 fi 48 ;; 49 esac 50 done 51 return $fail 52} 53