Why does man print “gimme gimme gimme” at 00:30? (2017)

Why does man print “gimme gimme gimme” at 00:30? (2017)

This is an easter egg in man. When you run man without specifying the page or with -w, it outputs “gimme gimme gimme” to stderr, but only at 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

The exit code is always 0.

The correct output should always be:

# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1

The string “gimme gimme gimme” can be found in RHEL, OpenSUSE, Fedora, Debian and probably more, so it’s not really distro specific. You can grep your man binary to verify.

This code is responsible for the output, added by this commit:

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");

I have contacted RHEL support about this issue.

The string comes from well known ABBA song Gimme! Gimme! Gimme! (A Man After Midnight).


The developer of the man-db, Colin Watson, decided that there was enough fun and the story won’t get forgotten and removed the easter egg completely.

Thank you Colin!

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *