Questo è un uovo di Pasqua dentro man
. Quando si esegue man
senza specificare la pagina o con -w
, viene visualizzato "gimme gimme gimme" su stderr, ma solo alle 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
Il codice di uscita è sempre 0.
L'output corretto dovrebbe essere sempre:
# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1
La stringa "gimme gimme gimme" può essere trovata in RHEL, OpenSUSE, Fedora, Debian e probabilmente di più, quindi non è specifica per la distro. Puoi verificare il grep
tuo man
binario.
Questo codice è responsabile dell'output , aggiunto da questo 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 gimme\n");
Ho contattato l'assistenza RHEL per questo problema.
La corda proviene dalla famosa canzone ABBA Gimme! Dammi! Dammi! (Un uomo dopo mezzanotte) .
Lo sviluppatore del man-db, Colin Watson, decise che ci sarebbe stato abbastanza divertimento e che la storia non sarebbe stata dimenticata e rimosse completamente l'uovo di Pasqua .
Grazie Colin!