Created
December 16, 2018 21:08
-
-
Save floam/c8432369b5176b96ecc0eb8e548a6bdd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# apropos -- search the whatis database for keywords. | |
# whatis -- idem, but match only commands (as whole words). | |
# | |
# Copyright (c) 1990, 1991, John W. Eaton. | |
# Copyright (c) 1994-1999, Andries E. Brouwer. | |
# | |
# You may distribute under the terms of the GNU General Public | |
# License as specified in the README file that comes with the man | |
# distribution. | |
# | |
# apropos/whatis-1.5m aeb 2003-08-01 (from man-1.6c) | |
# | |
# keep old PATH - 000323 - Bryan Henderson | |
# also look in /var/cache/man - 030801 - aeb | |
program=`basename $0` | |
# When man pages in your favorite locale look to grep like binary files | |
# (and you use GNU grep) you may want to add the 'a' option to *grepopt1. | |
aproposgrepopt1='i' | |
aproposgrepopt2='' | |
whatisgrepopt1='iw' | |
whatisgrepopt2='' | |
grepopt1=$aproposgrepopt1 | |
grepopt2=$aproposgrepopt2 | |
if [ $# = 0 ] | |
then | |
echo "usage: $program keyword ..." | |
exit 1 | |
fi | |
manpath=`man --path | tr : '\040'` | |
if [ "$manpath" = "" ] | |
then | |
echo "$program: manpath is null" | |
exit 1 | |
fi | |
args= | |
for arg in $*; do | |
case $arg in | |
--version|-V|-v) | |
echo "$program from man-1.6c" | |
exit 0 | |
;; | |
--help|-h) | |
echo "usage: $program keyword ..." | |
exit 0 | |
;; | |
-*) | |
echo "$program: $arg: unknown option" | |
exit 1 | |
;; | |
*) | |
args="$args $arg" | |
esac | |
done | |
while [ "$1" != "" ] | |
do | |
found=0 | |
for d in /var/cache/man $manpath /usr/lib | |
do | |
if [ -f $d/whatis ] | |
then | |
if grep -"$grepopt1" "$grepopt2""$1" $d/whatis | |
then | |
found=1 | |
# Some people are satisfied with a single occurrence | |
# But it is better to give all | |
# break | |
fi | |
fi | |
done | |
if [ $found = 0 ] | |
then | |
echo "$1: nothing appropriate" | |
fi | |
shift | |
done | eval ${PAGER:-more -E} | |
exit |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment