V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
siteshen
V2EX  ›  macOS

有没有人在 mac 下遇到过执行 `man` 命令出问题的情况?

  •  
  •   siteshen · 2019-05-07 18:10:11 +08:00 · 1725 次点击
    这是一个创建于 2059 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统版本:10.14.4

    本人未执行过任何激进升级(如预览版、测试版什么的)的行为。

    为了排除特定 shell 的问题,特地用了自带的 bash 复现问题。

    bash-3.2$ man man
    sh: -c: line 0: syntax error near unexpected token `||'
    sh: -c: line 0: `(cd '/usr/share/man' && (echo ".ll 8.3i"; echo ".nr LL 8.3i"; /bin/cat '/usr/share/man/man1/man.1') | /usr/bin/tbl | /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c | ( || true))'
    Error executing formatting or display command.
    System command (cd '/usr/share/man' && (echo ".ll 8.3i"; echo ".nr LL 8.3i"; /bin/cat '/usr/share/man/man1/man.1') | /usr/bin/tbl | /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c | ( || true)) exited with status 512.
    Man page /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/share/man/man1/man.1 is identical to /usr/share/man/man1/man.1
    No manual entry for man
    

    升级系统安装后 man 和该目录下其他文件的创建时间接近,程序应该没被替换过。

    bash-3.2$ ls -l /usr/bin/man /usr/bin/readlink
    -r-xr-xr-x  1 root  wheel  70192 Mar 21 14:10 /usr/bin/man
    -rwxr-xr-x  1 root  wheel  27520 Mar 21 14:09 /usr/bin/readlink
    

    使用 strings 看了下,疑似某必须的字符串为空引起的,不过不知道怎么解决。

    bash-3.2$ strings /usr/bin/man | grep true
    (cd '%Q' && %s | (%s || true))
    
    3 条回复    2019-05-07 21:11:45 +08:00
    ptyfork
        1
    ptyfork  
       2019-05-07 20:01:24 +08:00   ❤️ 1
    从报错信息看( || true) 是|| 前面缺了东西了,google 一下就知道这个是 PAGER 变量定义的,所以问题原因就是环境变量中的 PAGER 被设置为了空值

    查看变量定义
    ```
    env |grep PAGER
    ```

    带变量执行:

    ```
    PAGER=/usr/bin/lesss man man
    ```
    ptyfork
        2
    ptyfork  
       2019-05-07 20:02:46 +08:00
    上面写错了, 正确的应该为 PAGER=/usr/bin/less man man


    用 PAGER="" man man 就能复现错误。
    siteshen
        3
    siteshen  
    OP
       2019-05-07 21:11:45 +08:00
    @ptyfork 非常感谢!我确实设置了 `PAGER=`。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1306 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 17:49 · PVG 01:49 · LAX 09:49 · JFK 12:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.