这个开发者太傻逼了,水平不行就不要学人家做彩蛋。
起码你可以检测一下 pty,防止别人在脚本中使用,
如果嫌这个麻烦,那你还可以打印到 stderr。
【 在 Math2021 (我是Sunyata的新ID!) 的大作中提到: 】
: 标 题: Linux彩蛋:gimme gimme gimme
: 发信站: 水木社区 (Tue Sep 7 14:34:00 2021), 站内
:
: Linux彩蛋:gimme gimme gimme
: 投稿 @ 2021.09.07 , 12:10 下午
: 投稿:Uing
:
: 如果你使用 Linux 系统,在大多数的发行版上,在半夜十二点半,打开终端 (Terminal),输入man, 你会看到奇怪的东西:
:
: shell
: gimme gimme gimme
:
: 这是一个接近十年的彩蛋,也是四年前才被一个开发者发现。
:
: 那这个彩蛋是什么意思呢?又是谁这么无聊大半夜一直输入man 去能发现这个彩蛋呢?
:
: 一切都从 StackExchange 的一个问题说起。
:
: 捷克的开发者Jaroslav Kucera 发现一个奇怪的现象,他的一个集成测试总是在半夜十二点半失败。这个测试一直在运行,而且不依赖外部网路,但总是在 12:30am 这个时间失败。追根溯源后他发现,是因为用了一个命令man -w去获取系统 man 文档的地址。man 是 POSIX 系统的文档帮助命令,是manual的缩写。(有些技术BBS论坛会看到RTFM这个缩写,表示 read the f**king manual,说明你的问题在文档清楚的写着,不要浪费大家的时间)
:
: Jaroslav发现,在任何其他时间,man -w都给给出文档的目录地址,但在12:30am就会出现这个奇怪的信息:
:
: shell
: gimme gimme gimme
:
: /usr/local/man:/usr/local/share/man:/usr/share/man
:
: 而Jaroslav 的测试脚本默认用第一行作为目录去解析,而ginme ginme ginme显然不是目录,自然就失败了。
:
: 很自然地 Jaroslav在 StackExchange 问了这个问题。当然,有问题自然有答案(?),很快 Marnanel 就自首了:
:
: markdown
: Dear @colmmacuait, I think that if you type "man" at 0001 hours it should print "gimme gimme gimme". #abba @marnanel - 3 November 2011
:
: 呃,是我的错,我做出的建议。Sorry
:
: 基本上Commit的信息就是整个故事。man 的维护者是我的好基友,六年前的时候我开玩笑地建议他如果有人大半夜之后用了man的命令,应该打印出 "gimme gimme gimme" .....
:
: 没想到他真的干了,而只有少数人发现了这秘密,我们也快忘记这个事情了,直到今天。
:
: 那这个“gimme gimme gimme”到底什么意思呢? Marnanel 回答说因为 Abba 乐队著名的 《gimme gimme gimme! (a man after midnight)》(半夜后给我找一个男人)
:
: Marnanel 也没有想到这会导致任何问题,因为这真的只能是一个彩蛋(不影响关键功能的额外功能),而不是一个bug。
:
: 当然,你永远不知道你的用户会怎么用你的产品,例如在另一个事件,Wikimedia发现从印度突然每天向某个图片发来9千万的下载需求,最后发现印度一个开发者在开发App过程中用了Wikimedia的图片链接,只是下载图片但不显示,而这个App 因为中国抖音在印度被封禁而作为替代品流行起来,最后导致Wikimedia遭受无妄之灾。
:
: 最后,对着问题的修复就是:man -w不会触发这个彩蛋,其他情况才会。
:
: 如何触发这个彩蛋
:
: shell
: man
: gimme gimme gimme
:
: 源代码
:
: c
: 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 gimmen");
:
: commit
:
:
:
: 打赏
: 赞一个 (5)
: PREV : 今日好价:巴黎水
: NEXT : 国际货币基金组织贷款与离岸资金流动
:
: [ 上 ] [ 下 ]
: gz80 @ 2021-09-07 12:25:465018625
: 用开源项目就是这样,你永远不知道哪里埋了一颗雷,即使是善意的彩蛋,也会让你的程序产生莫名其妙的错误,而且事后想重现原场景却又很难重现出来。
:
: [举报]OO [14] XX [11] 吐槽 [2]
: nick @ 2021-09-07 12:48:415018653
: ABBA永遠的神
:
: [举报]OO [0] XX [0] 吐槽 [0]
: ark12211 @ 2021-09-07 12:52:305018655
: 既然是开源的不会在源代码里看到吗,怎么这么久都没人发现……
:
: [举报]OO [0] XX [2] 吐槽 [1]
: 电子狗 @ 2021-09-07 13:17:415018716
: 排版出了点小问题,没有解析出代码框,小编鸡腿要没了
:
: [举报]OO [1] XX [0] 吐槽 [0]
: 卷卷 @ 2021-09-07 13:33:145018743
:
https://music.163.com/#/song?id=3880252:
: [举报]OO [0] XX [0] 吐槽 [0]
: 乔治.佛洛依德 @ 2021-09-07 13:39:495018750
: @gz80: 有道理,最好还是把linux给某个公司独家垄断经营吧,这样才会最大程度为linux负责。
:
: [举报]OO [1] XX [2] 吐槽 [0]
: a @ 2021-09-07 14:00:305018767
: apt -moo
:
: [举报]OO [0] XX [0] 吐槽 [0]
: [ 上 ] [ IMG ]
:
: 称呼:
:
: 邮箱:
:
: 猛击发送
: Related Posts
: 牛人造喷气式两轮车欲破速度纪录
: 狂热星战粉丝自建钛战机
: 英国富翁古怪发明:让流浪者睡垃圾桶
: [v] 如何拍摄出凝固的水流
: 偷听纽约:法国看起来就是挺小啊
: 世界上最奇葩的9个控诉
: 12岁萝莉用ipod touch智斗绑架犯
: MS-DOS 30岁啦
: (C) 煎蛋 - 地球上没有新鲜事
: 鄂ICP备11008023号-1 · 鄂公网安备42018502002747号
: 煎蛋举报入口 · 举报电话 13125131232 · 举报邮箱 jubao@jandan.com
: 网信办违法和不良信息举报中心 · 涉历史虚无主义有害信息举报专区
: --
:
: ※ 来源:·水木社区
http://m.mysmth.net·[FROM: 106.127.97.*]
--
修改:flw FROM 163.125.197.*
FROM 163.125.197.*