首页 > 解决方案 > `man` 不尊重 `MANPAGER` 除非它被显式调用

问题描述

我在 Mac OS 上,使用 GNU Bash 和 GNU man-db,我MANPAGER设置为most.

$ uname
Darwin
$ bash --version
GNU bash, version 5.0.11(1)-release (x86_64-apple-darwin19.0.0)
...
$ man --version
man 2.8.5
$ echo $MANPAGER
most

当我调用man ls时,我看到man不尊重我的MANPAGER.

调用 <code>man ls</code> 不使用 <code>most</code>

但是当我调用时MANPAGER=most man lsman用于most显示手册页。

调用 <code>MANPAGER=most man ls</code> 使用 <code>most</code>

(1) 发生了什么man无法看到/使用我的MANPAGE环境变量。我不知道如何解释这种观察到的行为。

(2) 我怎样才能man ls看到/使用我的MANPAGE环境变量,这样我就可以简单地调用 asman ls而不必调用 as MANPAGE=most man ls

标签: bashmacosterminalpagermanpage

解决方案


man具体无关,我只是没有将环境变量导出到.profile. 无论出于何种原因,我认为export.profile. 更改线路MANPAGER=manexport MANPAGER=man解决我的问题。


推荐阅读