自動テストの一部が00:30に実行されると失敗しますが、残りの時間には正常に実行されることを確認しました。彼らはニュースに失敗する
gimme gimme gimme
、これはstderr
予想されませんでした。なぜこのような結果が出るのでしょうか?
答え1
蜂蜜@colmmacuait、私の考えでは、0001番地に「man」と入力すると、「gimme gimme gimme」を印刷する必要があるようです。#アバ
@マナネル- 2011年11月3日
まあ、それは私のせいです。私が提案したものです。申し訳ありません。
ほぼすべての物語が提出中です。 manのマネージャーは私の良い友達です。私に与えてくれ「アバソンだから」真夜中の後に男をください":
まあ、彼はそうだった。置く 存在する。何人かの人々はそれが楽しいと思ったし、私達は今日までそれについてほとんど忘れてしまった。
大佐様に代わっては言えません。どうやら、しかし私はこれが何の問題を引き起こすとは思わなかった。ページを指定せずにman出力を解析すると、どのようなテストが中断されますか?ついに出てきたのは驚くことはないようですが、6年かかりました。
(これメッセージを送信オンラインではほとんど使用されていませんが、法的な名前であるトーマスと呼んでください。 )
この問題は提出によって解決されました。84bde8:ランニングマンはman -w
もはやこのイースターエッグを実行しません。
答え2
これはイースターエッグですman
。man
ページを指定しない場合、またはを使用して実行すると、-w
標準エラーに「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
バイナリでこれを確認できますman
。
このコードは出力を担当します。、さんが追加しました今回提出してください:
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曲!私にしてください!私にしてください! (真夜中の男)。
man-dbの開発者であるコリン・ワトソンは、楽しさも十分で、ストーリーも忘れられないようだと感じ、イースターエッグは完全に除去されました。。
ありがとう、コリン!
答え3
しばらく悩んだ最後にこのイースターエッグを削除しました。。これはまもなくリリースされるman-db 2.8.0ではなくなります。
何人かの人々を笑わせてくれて嬉しいです。結局のところ、それはそれの全体的な目的であり、今日私のTwitter通知などは、ほとんどの人がこれが迷惑ではなく面白いと思うことを示唆しています。それにもかかわらず、一部の人々はこれが迷惑だと思っており、この問題については6年が良い選択であるようです。おそらくすでにそうであったよりも、それほど露出されていません。寝る時間です。