我只是想知道为什么echo $MANPATH
不起作用(在我的系统上(Debian Jessie x86_64 GNU/Linux 3.16.0-4-amd64))。该manpath
命令单独运行效果很好:
user@host:~$ manpath
/usr/local/man:/usr/local/share/man:/usr/share/man
/etc/manpath.config - 根据 列出的内容,存在并包含未注释的行manpath
。
manpath 手册页显示:
如果设置了 $MANPATH,manpath 将简单地显示其内容...
那么,为什么manpath
有效而echo $MANPATH
无效呢?
答案1
来自我的man manpath
(Ubuntu 16.10 - 因为你没有提到你的系统详细信息):
如果设置了 $MANPATH,manpath 将显示其值而不是动态确定它。
因此$MANPATH
更多的是对/etc/manpath.config
.
另请注意:
描述
如果设置了 $MANPATH,manpath 将仅显示其内容并发出警告。如果没有,manpath 将确定合适的手册页层次结构搜索路径并显示结果。
答案2
因为这都是关于变量$MANPATH
存在的:如果需要自定义的 manpath,则被覆盖。
引用 Debian Lenny 手册页:
描述
如果
$MANPATH
设置了,manpath 将简单地显示其内容并发出警告。如果没有,manpath 将确定合适的手册页层次结构搜索路径并显示结果。冒号分隔的路径是使用从 man-db 配置文件 - (
/etc/manpath.config
) 和用户环境获得的信息确定的。
当手册页说“如果$MANPATH
已设置”时,含义是“如果此变量由用户或脚本设置...”或“如果此变量为空,则使用位于manpath.config
”的默认值。
花点时间浏览该/etc/manpath.config
文件,了解所有联机帮助页路径的结构。
相关内容:
$MANPATH
有关操作或创建自定义手册页路径的一些链接。
- 恢复 MANPATH 的简单方法
- 如何为我自己的电动工具添加手册页条目?
- Debian 列表 - 回复:命令“manpath”如何工作?
- FreeBSD manpath(1) 联机帮助页- 此联机帮助页对于学习目的很有趣,因为它更清楚地表达了设置的含义
$MANPATH
。