Wie zeige ich zufällige Witze von www.icndb.com in meinem Terminal an?

17

Ich weiß bereits, dass Sie mit dem Fortune- Programm einige nette Zitate / Witze bekommen können .

Aber ich habe in diesem urwird Skript eine neue Quelle des Spaßes gefunden, die ich haben möchte, wenn ich ein neues Terminal öffne.

Diesmal kommen die Witze von http://www.icndb.com .

Sylvain Pineau
quelle

Antworten:

25

Sie können die RESTful-API von icndb verwenden: http://www.icndb.com/api/ .

  1. Installieren Sie die Pakete cowsay, recodeund jshon:

    sudo apt-get install cowsay recode jshon
  2. Dann fügen Sie einfach die folgenden Zeilen hinzu .bashrc:

    if [ "$PS1" ]; then
        wget "http://api.icndb.com/jokes/random" -qO- | jshon -e value -e joke -u |
        recode html | cowsay -f tux
    fi
    

    Hinweis : Wenn Sie prüfen, ob diese Option aktiviert $PS1ist, wird sichergestellt, dass die Witze bei nicht interaktiven Sitzungen nicht angezeigt werden.

  3. Wenn ich jetzt eine öffne, gnome-terminalbekomme ich:

    Bildbeschreibung hier eingeben

Sylvain Pineau
quelle
3
Wenn Sie cowsay installieren, können Sie dies auch tun jshon. Das Parsen des JSON wird dadurch wesentlich präziser (und wahrscheinlich auch schneller):wget "http://api.icndb.com/jokes/random" -qO- | jshon -e value -e joke -u
Oli
1
Ich bin mir nicht sicher, ob Sie das mit JSON benötigen (umkodieren). Und jshon's -u sollte trotzdem einen dekodierten String zurückgeben.
Oli
1
Meinetwegen. Das liegt mehr an icndb.com als an JSON.
Oli
1
Ich bin mir ziemlich sicher, dass die Standardeinstellung ~/.bashrcbereits überprüft, ob es sich um eine interaktive Shell handelt ( [[ $- != *i* ]] && return).
Nyuszika7h
2
Es ist kein Backslash für die Fortsetzung der Linie nach einer Rohrleitung erforderlich. Das Rohr bewirkt, dass die Leitung von selbst fortgesetzt wird.
Bis auf weiteres angehalten.