首页 > 解决方案 > 我的手册页输出未从显示的第一行开始

问题描述

我正在为我在公司安装的脚本编写手册页,这是我的第一个此类手册页。我首先将 cat 的手册页复制到我的新 man/man1 目录中。然后我为那个页面发出了 man 命令并得到了完美的输出。然后我开始编辑复制的 cat man 文件以适应它来描述我的脚本。起初一切都很好,每次我编辑我的 man 文件然后输入 man 时,输出都会稳定地显示关于我的实用程序而不是关于 cat 命令的信息。但后来我开始看到一个问题。每次我从 man 文件中删除与 cat 命令相关的不相关部分时,man 文件的输出在我的屏幕上开始越来越低,上面只有空白行。当我恢复那些已删除的行时,我的 man 命令的输出将再次在我的屏幕上重新开始。在许多其他命令之后,我从 man 文件中删除的行远低于顶部,但是当它们被删除时,结果是在我的 man 文件的输出开始显示之前的空白行。这可能是什么原因造成的?

以下是我的 man 文件的内容:

.TH SHOW_PATH "2" "November 2020" "GNU coreutils 8.22" "User Commands"
.SH NAME
show_path - 显示您当前的路径
.SH SYNOPSIS
.B show_path
.SH DESCRIPTION
." 添加此处的任何其他描述
.PP
显示您当前的路径设置,按目录,
.br
以与搜索目录相同的顺序显示。.SH
示例
.TP
show_path
.SH AUTHOR
由 Richard Baumann 撰写。.SH
COPYRIGHT
版权所有(co 2020 Exelixis, Inc.

更新:我突然想到,由于文件中的内容被删除,我的手册页的输出在屏幕上开始下降,这只不过是输出在屏幕上垂直居中。如果我可以在我的 man 文件中找到指示输出应垂直居中的指令,或者从外部 roff 用户指南中找到将其关闭的指令,那么我相信问题将得到解决。

对 MEUH 的后续问题:

这似乎很有效,但它让我想到了两个新问题。我首先在我的手册页文件顶部附近插入“export PAGER”指令,发现它没有效果。然后我在命令提示符下输入命令 export PAGER=cat man show_path ,然后输入 man show_path ,效果很好。然后我在命令提示符下输入 unset PAGER,然后在命令提示符下再次输入 man show_path ,发现输出再次恢复到有问题的屏幕显示垂直居中。这两个步骤证明使用 PAGER 系统设置确实具有预期的效果。但这里是我的后续问题: (1) 设置 PAGER 选项会影响用户的环境变量。我的许多手册页将被多个部门的一大群用户查看。我希望我对用户环境变量所做的任何更改仅在使用我的任何手册页期间生效,然后恢复到在我的任何脚本上输入 man 命令之前的任何内容,即我需要知道如何在我编写的任何手册页的末尾以编程方式取消设置 PAGER。(2) PAGER 环境变量的设置包含一个特定于每个手册页的元素,即导出指令中的最后一个标记。根据我目前的发现,需要在发出 man 命令之前设置 PAGER 环境变量。但它的设置取决于将遵循哪个特定的 man 命令。如何设置它,以便用户可以在我的几个脚本上连续输入 man 命令,并在发出 man 命令之前只设置一次 PAGER 环境变量,让它们都正常工作?在此先感谢您的帮助,到目前为止,它的帮助很大。

标签: manpagegroff

解决方案


推荐阅读