#!/bin/bash
#
# Requires "whatis", "cat", "grep", "tr", "less"
clear
[ -z $1 ]&&{
cat << !
*** "howto" - a friendler "whatis" / a more relaxed "apropos" ***
                  by Ben Okopnik, 4/1997
Please enter a topic to search for, like:
    howto to stop worrying and learn to love the bomb

!
exit
}
typeset -i answer
FNAME=$(mktemp /tmp/tempfile.XXXXXX)
trap 'rm $FNAME; rm /tmp/howto' 0
ALL="$@"
whatis -w \*|grep -v "::"|grep -v "\(3pm\)"|grep -v "\(3ncurses\)"|tr -d '"' > $FNAME
echo "I've found these matches to your request:"
while [ 1 ]
do
    echo
    echo "0." `grep -ic "$ALL" $FNAME` "for '"$@"'"
    count=1
    for n in "$@"
    do
        echo $count"." `grep -ic $n $FNAME` "for '"$n"'"
        count=$(($count+1))
    done
    echo
    echo "Please enter the line number to display or '$(($#+1))' to quit:"
    read answer
    clear
    if [ $answer -gt $# ]
    then
        clear
        exit
    fi
    echo "*******************************" > /tmp/howto
    if [ $answer = 0 ]
    then
        echo "Matches for '$ALL':" >> /tmp/howto
        echo "*******************************" >> /tmp/howto
        grep -i "$ALL" $FNAME >> /tmp/howto
    else
        echo "Matches for '${!answer}':" >> /tmp/howto
        echo "*******************************" >> /tmp/howto
        grep -i ${!answer} $FNAME >> /tmp/howto
    fi
    echo >> /tmp/howto
    less -P "Press 'q' to exit the viewer" /tmp/howto
    clear
done
