हमने देखा है कि हमारे कुछ स्वचालित परीक्षण विफल हो जाते हैं, जब वे 00:30 पर चलते हैं, लेकिन बाकी दिन ठीक काम करते हैं। वे stderr में "gimme gimme gimme" संदेश के साथ विफल होते हैं, जिसकी उम्मीद नहीं थी। हमें यह आउटपुट क्यों मिल रहा है?
हमने देखा है कि हमारे कुछ स्वचालित परीक्षण विफल हो जाते हैं, जब वे 00:30 पर चलते हैं, लेकिन बाकी दिन ठीक काम करते हैं। वे stderr में "gimme gimme gimme" संदेश के साथ विफल होते हैं, जिसकी उम्मीद नहीं थी। हमें यह आउटपुट क्यों मिल रहा है?
जवाबों:
प्रिय @colmmacuait , मुझे लगता है कि अगर आप 0001 घंटे पर "आदमी" टाइप करते हैं, तो उसे " gimme gimme gimme " प्रिंट करना चाहिए। #abba @marnanel - 3 नवंबर 2011
एर, यह मेरी गलती थी, मैंने इसे सुझाया। माफ़ करना।
बहुत कुछ पूरी कहानी में है। मनुष्य का अनुचर मेरा एक अच्छा दोस्त है, और एक दिन छह साल पहले मैंने उससे मजाक में कहा था कि यदि आप आधी रात के बाद आदमी को बुलाते हैं तो उसे " गिम्मे गिम्मे गिम्मे " को प्रिंट करना चाहिए , क्योंकि अब्बा के गीत के कारण " गिम्मे गिम्मे गिम्मे एक आदमी" आधी रात के बाद ":
खैर, उन्होंने वास्तव में इसे रखा था । कुछ लोग इसे खोजने के लिए चकित थे, और हम ज्यादातर आज तक इसके बारे में भूल गए।
मैं स्पष्ट रूप से कर्नल के लिए बात नहीं कर सकता , लेकिन मैंने कभी भी किसी भी समस्या का कारण बनने की उम्मीद नहीं की: किसी भी पृष्ठ के बिना आदमी के उत्पादन को पार्स करने पर किस तरह का परीक्षण टूट जाएगा? मुझे लगता है कि मुझे आश्चर्य नहीं होना चाहिए कि एक अंततः बदल गया, लेकिन इसमें छह साल लग गए।
( प्रतिबद्ध संदेश मुझे थॉमस कहता है, जो मेरा कानूनी पहला नाम है, हालांकि मैं इसका ऑनलाइन उपयोग नहीं करता हूं।)
इस मुद्दे को प्रतिबद्ध 84bde8 के साथ तय किया गया है : साथ चल रहा आदमी man -wअब इस ईस्टर अंडे को ट्रिगर नहीं करेगा।
यह एक ईस्टर अंडे में है man। जब आप manपृष्ठ को निर्दिष्ट किए बिना या उसके साथ चलते हैं -w, तो यह "gimme gimme gimme" stderr को आउटपुट करता है, लेकिन केवल 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
स्ट्रिंग "जिम्मी गिम्मे गिम्मे" आरएचईएल, ओपनएसयूएसई, फेडोरा, डेबियन और शायद अधिक में पाया जा सकता है, इसलिए यह वास्तव में विशिष्ट विशिष्ट नहीं है। आप 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");
मैंने इस मुद्दे के बारे में आरएचईएल समर्थन से संपर्क किया है।
स्ट्रिंग प्रसिद्ध एबीबीए गीत गिम्मे से आता है ! गिम्मी! गिम्मी! (ए मैन आफ्टर मिडनाइट) ।
मैन-डीबी, कॉलिन वॉटसन के डेवलपर ने फैसला किया कि पर्याप्त मज़ा था और कहानी भूल नहीं जाएगी और ईस्टर अंडे को पूरी तरह से हटा दिया ।
धन्यवाद कॉलिन!
faketimeउपलब्ध प्लेटफ़ॉर्म पर आप सिस्टम समय बदलने की आवश्यकता के बिना भी यह कोशिश कर सकते हैं: faketime '00:30:00' man(डेबियन 8)।
man, नहीं man -w: git.savannah.nongnu.org/cgit/man-db.git/commit/src/... और Marnanel के confessio ^ Wanswer पर कॉलिन की टिप्पणी ।
man -wवर्तमान मैनुअल पेज सर्च पथ को प्रिंट करता है, जो उस प्रकार की चीज है जिसे आप किसी अन्य चीज़ के लिए बिल्डिंग ब्लॉक के रूप में उपयोग कर सकते हैं।
कुछ प्रतिबिंब के बाद, मैंने इस ईस्टर अंडे को हटा दिया है । यह आगामी मैन-डीबी 2.8.0 में चला जाएगा।
मुझे खुशी है कि इसने कुछ लोगों को मुस्कुरा दिया, जो आखिरकार इसका पूरा उद्देश्य था, और मेरे ट्विटर नोटिफिकेशन और इतने पर आज का सुझाव है कि ज्यादातर लोगों ने सोचा कि यह कष्टप्रद की तुलना में अधिक मनोरंजक था। फिर भी, कुछ लोगों ने इसे कष्टप्रद पाया, और छह साल उस तरह के एक बहुत अच्छे रन की तरह लगते हैं; यह शायद इस सवाल के रास्ते से पहले से ही अप्रत्याशित रूप से बेहतर प्रदर्शन नहीं हो रहा है। इसे बिस्तर पर लगाने का समय।
man -abbaऔर जब आधी रात के बाद निकाल दिया जाता है तो ईस्टर अंडे देगा।