除非明确调用`man`,否则不尊重`MANPAGER`

时间:2019-12-22 00:39:59

标签: bash macos terminal pager manpage

我在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

Invoke as <code>man ls</code> does not use <code>most</code>

但是当我调用MANPAGER=most man ls时,man使用most来显示手册页。

Invoke as <code>MANPAGER=most man ls</code> uses <code>most</code>

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

(2)如何获取man ls来查看/使用我的MANPAGE环境变量,以便我可以简单地以man ls的身份调用而不必以{{ 1}}。

1 个答案:

答案 0 :(得分:0)

man无关,我只是没有在.profile中导出环境变量。无论出于什么原因,我都认为export中定义的变量不需要.profile。将行MANPAGER=man更改为export MANPAGER=man解决了我的问题。