📄 manpage.sh.in
字号:
#!@SCRIPT_SH@# $Id: manpage.sh.in,v 1.1.1.1 1998/10/12 20:47:51 root Exp $## Copyright (c) 1994-1995 Sam Leffler# Copyright (c) 1994-1995 Silicon Graphics, Inc.# # Permission to use, copy, modify, distribute, and sell this software and # its documentation for any purpose is hereby granted without fee, provided# that (i) the above copyright notices and this permission notice appear in# all copies of the software and related documentation, and (ii) the names of# Sam Leffler and Silicon Graphics may not be used in any advertising or# publicity relating to the software without the specific, prior written# permission of Sam Leffler and Silicon Graphics.# # THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, # EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY # WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. # # IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE # OF THIS SOFTWARE.### manpage?query## Retrieve a UNIX manual page using man and return an HTML# document with the appropriate font changes and anchors# (for other manual page references). Other stuff like page# headers and footers are left, though they could trivially# be removed with more sed commands. Likewise one can add# other anchors such as include file references.## Note that only a single manual page (the first hit) is# returned. This is not a general purpose manual interface;# it's intended for linking manual pages to HTML documents.## NB: man is much faster if invoked with a section; it's best# to use "manpage?section+query" instead of "manpage?query"#PATH=/bin:/usr/bintest -d /usr/sbin && PATH=$PATH:/usr/sbin # SGI and otherstest -d /usr/bsd && PATH=$PATH:/usr/bsd # SGItest -d /usr/ucb && PATH=$PATH:/usr/ucb # Sun and otherstest -d /usr/5bin && PATH=/usr/5bin:$PATH # Sun and otherstest -d /usr/local/bin && PATH=/usr/local/bin:$PATH # for GNU stuffECHO=@ECHO@SED=@SED@CAT=@CAT@MAN=@MAN@COL=@COL@MAN2HTML=@CGIDIR@/man2htmlcase "@TARGET@" in*-irix*) MAN_FLAGS="-p -c" ;;*) MAN_FLAGS="" ;;esac## XXX the server expands the pathname when# setting SCRIPT_NAME, so it can't be reused.#SCRIPT_NAME=@CGIPATH@/manpageUNQUOTE=@CGIDIR@/unquoteMANPATH=@MANDIR@:/usr/share/catman:/usr/share/man:/usr/catman:/usr/manexport MANPATH$ECHO 'Content-type: text/html'$ECHO ''cvtLinks(){ # # The first two expressions skip correctly formatted page headers # (NB: many man pages are incorrectly formatted). The 3rd # expression handles the normal man page reference. The # last 3 expressions deal with incorrectly formatted references. # $SED -e "/^ *[A-Z][A-Z_0-9]*([l-p1-8][a-zA-Z]*)/n" \ -e "/^ *<B> *[A-Z][A-Z_0-9]*([l-p1-8][a-zA-Z]*)/n" \ -e "s;<[IB]>\([^<]*\)</[IB]>(\([l-p1-8]\)\([a-zA-Z]\{0,1\}\));<A HREF=\"$SCRIPT_NAME?\2+\1\">\1(\2\3)</A>;g" \ -e "s;<[IB]>\([^<]*\)</[IB]>(<[IB]>\([l-p1-8]\)\([a-zA-Z]\{0,1\}\)</[IB]>);<A HREF=\"$SCRIPT_NAME?\2+\1\">\1(\2\3)</A>;g" \ -e "s;<[IB]><[IB]>\([^<]*\)</[IB]></[IB]>(\([l-p1-8]\)\([a-zA-Z]\{0,1\}\));<A HREF=\"$SCRIPT_NAME?\2+\1\">\1(\2\3)</A>;g" \ -e "s;\([a-zA-Z_0-9][a-zA-Z_0-9]*\)(\([l-p1-8]\)\([a-zA-Z]\{0,1\}\));<A HREF=\"$SCRIPT_NAME?\2+\1\">\1(\2\3)</A>;g"}QUERY=`$ECHO "$QUERY_STRING" | $UNQUOTE -qn`$CAT<<EOF<TITLE>UNIX Manual Page: man $QUERY</TITLE><BODY>EOFif [ -x $MAN -a -x $COL -a -x $MAN2HTML ]; then CMD=`$MAN $MAN_FLAGS $QUERY | $SED 1q` case "$CMD" in *[nN]o*manual*) echo "<H2><IMG SRC=\"@HTMLPATH@/icons/button.excl.gif\">$CMD</H2>" echo 'The <KBD>man</KBD> command did not locate the requested manual' echo 'page. This is typically because the file is not present on the' echo 'machine, but it can also be caused by a mistyped query string' echo 'or some resource (e.g. an NFS-mounted filesystem) being' echo 'temporarily unavailable.' ;; *) echo '<PRE WIDTH=80>' $MAN $MAN_FLAGS $QUERY 2>/dev/null | $COL -x | $MAN2HTML | cvtLinks echo '</PRE>' ;; esacelse echo '<H2><IMG SRC="@HTMLPATH@/icons/button.excl.gif">No manual page support</H2>' echo 'All the programs required to support manual page queries were' echo 'not available or were not in the expected locations. The following' echo 'programs are required:' echo '<PRE>' echo "$MAN standard manual page program" echo "$COL to filter reverse-line feeds" echo "$MAN2HTML to convert the output of $MAN to HTML" echo '</PRE><P>'fiecho '</BODY>'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -