系统版本: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))
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.