[gelöst]Fortune Glückskekse

Hinweis: In dem Thema [gelöst]Fortune Glückskekse gibt es 7 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo Leute


    Es ist hier eigentlich nicht das richtige Forum. Aber im Thunderbird-Forum hab ich keine befriedigenden Antworten erhalten können und mehrere Stunden "googeln" brachten auch nichts konstruktives. Ich wollte im Thunderbird als Signatur einen Spruch von Fortune ausgegeben haben. Fortune ist installiert und gibt in der Konsole auch Sprüche aus, wenn man Fortune aufruft. Geht also soweit. Wie krieg ich das hin, dass

    1. beim Aufrufen der Konsole ein Spruch aus der Fortune-Datenbank automatisch angezeigt wird (bei Linux-Mint ging das von Haus aus) und


    2. ich die Sprüche von Fortune im Thunderbird so verwenden kann, dass bei jeder neu verfassten Mail ein Spruch von Fortune als Signatur angehängt wird.


    Thunderbird ist zwar im OpenSUSE-Forum nicht relevant, aber vllt. hat der eine oder andere ja das Problem gelöst und verwendet diese Variante.


    MfG Alero

  • Für Thunderbird habe ich das Problem gelöst. Die Lösung steht hier:


    http://www.linux-community.de/…29/4/%28printView%29/true


    Nur für die bash noch nicht, obwohl das dort nicht so wild ist. Das ist eh nur eine Spielerei. Thunderbird war mir wichtiger.

  • 1. beim Aufrufen der Konsole ein Spruch aus der Fortune-Datenbank automatisch angezeigt wird (bei Linux-Mint ging das von Haus aus) und


    Einfach in ~/.profile das # aus diesen Zeilen entfernen:

    Code
    #if [ -x /usr/bin/fortune ] ; then
    # echo
    # /usr/bin/fortune
    # echo
    #fi

    und dein Terminal so einrichten dass neue Fenster wie eine Login-Shell behandelt werden

    Unix is user friendly. It’s just selective about who its friends are.

    Für den Inhalt des Beitrages 66563 haftet ausdrücklich der jeweilige Autor: tux93


  • und dein Terminal so einrichten dass neue Fenster wie eine Login-Shell behandelt werden


    Wie mache ich das?


    MfG Alero

  • Einfacher für jede bash Instanz:

    Code
    cat >> ~/.bashrc<enter>
    /usr/bin/fortune<enter>
    <strg>+<d>

    Strg+d ist bei Unices das EndOfData Zeichen. Der "cat" Befehle hängt den Fortuneaufruf an die .bashrc an und die wird für jede aufgerufene bash abgearbeitet.

  • Der cat-Befehl ging irgendwie voll in die Hose und hat sich mit dem vorherigen Eintrag für den Thunderbird in die Wolle bekommen.
    Aber ich hab das Prinzip verstanden. Musste alles noch mal in der bashrc mit Kate neu eintragen nachdem ich alles andere vorher gelöscht hatte.


    Es wäre einfacher gewesen, mitzuteilen, dass man an das Ende der bashrc einfach den Eintrag


    Code
    /usr/bin/fortune


    anhängt. Aber das wäre wohl zu einfach gewesen :whistling:


    Letztendlich sieht meine bashrc nun so aus:


    Eintrag für Thunderbird und unten drunter Eintrag für die bash


    Code
    test -s ~/.alias && . ~/.alias || true
    echo -e "-- \n\nSpruch des Tages:\n" > $HOME/Dokumente/Sonstiges/signatur.txt;
    fortune >> $HOME/Dokumente/Sonstiges/signatur.txt
    /usr/bin/fortune


    Und so tut nun alles :thumbsup:


    Was mich noch interessieren würde.... was tut der test-Eintrag dort?

  • Code
    test -s ~/.alias && . ~/.alias || true


    "test -s" testet, ob eine Datei existiert und nicht leer ist. In diesem Fall die Datei ".alias", die im Home des aktiven Users ( das meint die ~ ) .
    Das "&&" verkettet zwei Befehle, falls der erste erfolgreich ist.
    Das "||" verkettet zwei Befehle, falls der erste nicht erfolgreich war.


    Das liest sich also:


    Prüfe ob im Home des aktiven Users eine Datei namens ".alias" existiert und nicht leer ist.


    Wenn das so ist, führe den Punktbefehl aus.
    klingt komisch, ist aber so: "." ist ein Befehl. Er ist synonym zu "source", er lautet in diesem Fall also: ". ~/alias"
    Der tut nichts anderes, als eine Scriptdatei einzulesen.
    Die Zeile wird also mit dem Inhalt der Datei ~/.alias ersetzt.


    Der Befehl "true" liefert immer wahr zurück und tut sonst nichts.
    Er bewirkt in diesem Fall, dass, wenn die Datei .alias nicht existiert, keine Fehlermeldung ausgegeben wird, sondern der "||" Zweig aufgerufen wird. Damit wird also nur die Fehlermeldung unterdrückt.


    Das ganze ist schlicht eine Art "if" Abfrage
    If test irgendwas, dann source Datei xy, wenn nicht, halte die Klappe.


    Den Mechanismus mit "source Datei" (oder kurz ". Datei" ) verwendet man gerne, um Scripte lesbar zu halten und leichter schreiben zu können.
    In diesem Falle wird er verwendet, damit man seine Aliase bequem in einer einzigen Datei hat und sie dennoch durch das Sourcen in all seinen bash Instanzen wirksam zu haben.


    Achte auf den Unterschied: einmal ist der Punkt von Leerzeichen umgeben, und somit ein Befehl.
    Bei ".alias" ohne Leerzeichen ist der Punkt Bestandteil des Dateinamens.

  • Danke für die ausführliche Erklärung. Wieder was dazu gelernt. :thumbup:


    Somit betrachte ich die Geschichte mit den Glückskeksen als abgeschlossen.