#1 楼
亲爱的@colmmacuait,我认为,如果您在0001小时输入“ man”,则应打印“ gimme gimme gimme”。 #abba @marnanel-2011年11月3日
er,那是我的错,我建议这样做。抱歉。
差不多整个故事都在提交中。人的维护者是我的好朋友,六年前的一天,我开玩笑地对他说,如果您在午夜之后调用人,则应该打印“ gimme gimme gimme”,因为阿爸的一首歌叫做“ Gimme gimme gimme a man午夜之后”:
好吧,他确实把它放进去了。有些人发现它很有趣,而直到今天我们都忘了它。
我可以显然不代表Col,但是我没想到这会导致任何问题:在不指定页面的情况下解析man的输出时,哪种测试会失败?我想我不应该惊讶一个人最终出现了,但是花了六年的时间。
(提交消息称我为Thomas,尽管我不使用它是我的合法名字。
此问题已通过commit 84bde8得到修复:带有
man -w
的奔跑者将不再触发此复活节彩蛋。评论
糟糕!它从未打算影响非错误案件。当我实现git.savannah.gnu.org/cgit/man-db.git/commit / ...时,我没有考虑到这一点。已在主服务器中修复:git.savannah.gnu.org/cgit/man-db.git/commit/…
–科林·沃森(Colin Watson)
17年11月21日在9:55
评论不作进一步讨论;此对话已移至聊天。
– terdon♦
17年11月21日在17:45
这些评论用于要求澄清和/或讨论答案的技术要点。如果您想讨论复活节彩蛋的优点,请聊天。
– terdon♦
17年11月21日在17:46
妈妈咪呀,现在我真的知道了!
– Enlico
18年7月15日在13:25
也许人需要一个--seriously参数
–帕特里克·泰勒(Patrick Taylor)
18-10-3在6:08
#2 楼
这是man
中的复活节彩蛋。当您运行man
而不指定页面或使用-w
时,它将向stderr输出“ gimme gimme gimme”,但仅在00:30:# date +%T -s "00:30:00"
00:30:00
# man -w
gimme gimme gimme
/usr/local/share/man:/usr/share/man:/usr/man
退出代码为始终为0。
正确的输出应始终为:
# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1
字符串“ gimme gimme gimme”可以在RHEL,OpenSUSE, Fedora,Debian甚至更多,所以它并不是真正针对发行版的。您可以使用
grep
二进制文件进行验证。此代码负责输出,并由以下提交添加:
src/man.c-1167- if (first_arg == argc) {
src/man.c-1168- /*
http://twitter.com/#!/marnanel/status/132280557190119424 */
src/man.c-1169- time_t now = time (NULL);
src/man.c-1170- struct tm *localnow = localtime (&now);
src/man.c-1171- if (localnow &&
src/man.c-1172- localnow->tm_hour == 0 && localnow->tm_min == 30)
src/man.c:1173: fprintf (stderr, "gimme gimme gimme\n");
我已经联系了RHEL支持此问题。
字符串来自著名的ABBA歌曲Gimme!给我给我(午夜之后的一个男人)。
man-db的开发者Colin Watson认为有足够的乐趣,并且故事不会被遗忘,并且完全删除了复活节彩蛋。 。
谢谢科林!
评论
在具有faketime的平台上,您甚至无需更改系统时间就可以尝试以下操作:faketime '00:30:00'man(Debian 8)。
–roaima
17年11月20日在15:05
@rrauenza有buzilla门票:bugzilla.redhat.com/show_bug.cgi?id=1515352
–贾罗斯拉夫·库切拉(Jaroslav Kucera)
17年11月21日在7:41
现在,作者已经收紧了复活节彩蛋,使之只能在人身上而不是人-w上运行:git.savannah.nongnu.org/cgit/man-db.git/commit/src / ...以及Colin对Marnanel的confessio ^ Wanswer的评论。
–马丁·彼得斯(Martijn Pieters)
17年11月21日在10:09
让我们说一下,最初的提交是在12:01 am触发的。后续提交将其更改为12:30 am,并带有提交日志消息“十二点半”,该消息再次引用同一首歌。
– egmont
17年11月21日在21:00
@ 0x90 man -w打印当前的手册页搜索路径,您可以合理地将其用作其他内容的构建块,例如,如果要自动化的内容涉及安装或测试手册页。
–科林·沃森(Colin Watson)
17年11月25日在20:06
#3 楼
经过一番思考,我删除了这个复活节彩蛋。它将在即将发布的man-db 2.8.0中消失。我很高兴它使一些人微笑,这毕竟是它的全部目的,还有我的Twitter通知等等。如今,大多数人认为这比烦人更有趣。不过,有些人还是觉得这很烦人,六年来似乎对这样的事情来说是相当不错的。它可能不会比通过这个问题已经意外地获得更好的曝光率。该睡觉了。
评论
我真的很难过,你决定那样做。国际海事组织(IMO)太多的人把它当作复活节彩蛋。
–赛斯
17年11月22日在1:52
我不排除将来会增加一些不同之处,尽管会更加小心!不过,它变得有些陈旧,幽默的确需要新颖性。
–科林·沃森(Colin Watson)
17年11月22日在1:54
我有@Seth同意,这是可悲的,看看这使我们大多数人的微笑,我们需要更多的实际对这个世界的东西去了。
– Videonauth
17年11月22日在3:00
我希望这不会破坏任何工作流程xkcd.com/1172
–lakshayg
17年11月22日在4:41
@ColinWatson我认为在默认流程中禁用此功能是一个好主意,因此不会破坏任何人的工作流程。但是同时,这样的杰作也不得不被删除,实在令人遗憾。您可以添加一个特殊的标志,例如man -abba,午夜后解雇时会送出复活节彩蛋。
–Bartlomiej Skwira
17年11月22日在11:07
评论
链接到:unix.stackexchange.com/questions/226716/…我不明白为什么您的测试脚本会在失败的地方调用man?
@Joshua因为我们想要“ manpath”-'man -w'。查看答案。
为了历史,为什么您需要每分钟执行一次“ man -w”操作?你到底在测试什么?
@OlivierDulac它在测试中仅被触发一次。我们重新安排了测试顺序,并突然在00:30触发该错误,此错误...