代码如下:
#! /bin/bash
function usage
{
echo "Usage:"
echo " $(basename $0) section topic"
echo ""
echo " For example:"
echo " $(basename $0) 1 bash"
}
[ $# != 2 ] &&
{
usage
exit 1
}
SECTION=$1
TOPIC=$2
[ ${#SECTION} = 1 -a "$TOPIC" ] ||
{
usage
exit 1
}
MANFILE=$(man -w -S"$SECTION" "$TOPIC" 2> /dev/null)
[ $? = 0 ] ||
{
echo "error: man page for '$TOPIC($SECTION)' not found"
exit 1
}
echo "Using man file '$MANFILE' ..."
TMPDIR=/tmp
MANDIR=$(dirname $MANFILE)
MANFILE=$(basename $MANFILE)
if [ "$MANFILE" = "${MANFILE%.gz}" ]; then
cp $MANDIR/$MANFILE $TMPDIR
else
MANFILE=${MANFILE%.gz}
gzip -dc $MANDIR/$MANFILE.gz > $TMPDIR/$MANFILE
fi
echo "**** $TOPIC($SECTION)" >> /$TMPDIR/$(basename $0).log
GROFF=groff
PS2PDF=ps2pdf13
$GROFF -t -e -mandoc -Tps $TMPDIR/$MANFILE > $TMPDIR/$MANFILE.ps 2>> /$TMPDIR/$(basename $0).log
if [ $? != 0 ]; then
echo "$GROFF error"
exit 1
fi
$PS2PDF $TMPDIR/$MANFILE.ps 2>> /$TMPDIR/$(basename $0).log
if [ $? != 0 ]; then
echo "$PS2PDF error"
exit 1
fi
rm -f $TMPDIR/$MANFILE $TMPDIR/$MANFILE.ps
## THE END
用法: man2pdf.sh 8 grub
在当前目录下生成第8章 的GRUB 命令的PDF
手册分类
参考:
中文MAN-PAGE计划 http://cmpp.linuxforum.net
Linux Man Pages Online http://man.he.net/