vdr-shutdown Parameter

  • Hallo an alle fleißigen Helfer ;)


    Ich bin gerade dabei, mir für meinen CT'VDR 3.07 einen eigenen shutdown.hook (S90.custom) zu schreiben, so dass beim Runterfahren des Rechners ein epgscan.sh script gestartet wird. Das Thema ist ja auch schon oft diskutiert worden und bereitet als solches keine Probleme.. Nun will ich das script nur starten, wenn der shutdown automatisch nach Überschreiten der minuserinactivity ausgelöst wurde - theoretisch auch kein Problem, da angeblich mit $5 der entsprechende vom vdr übergebene Parameter (0 oder 1) abgefragt werden kann, sieht man ja auch am message-log:

    Code
    Jul 31 16:06:28 vdr vdr[19645]: executing '/usr/lib/vdr/vdr-shutdown 1122929880 111099 7 "Kalkofes Mattscheibe~Kalkofes Mattscheibe" 1'


    Allerdings hatte ich Probleme bei der Umsetzung und habe etwas nachgeforscht... folgende S90.custom zum testen:

    Code
    echo "ABORT_MESSAGE=\"$5\""
    exit 1;


    Was dann als Abortmessage auf dem OSD ausgegeben wurde, war nicht wie erwartet "1", sondern "Mattscheibe~Kalkofes"!
    Ich hab leider keine Ahnung, ob vdr-shutdown exakt so aufgerufen wird wie im log angegeben, aber (mal so ins blaue geraten) kann es sein, dass der Aufruf korrekterweise

    Code
    /usr/lib/vdr/vdr-shutdown 1122929880 111099 7 \"Kalkofes Mattscheibe~Kalkofes Mattscheibe\" 1


    lauten müsste, damit ein String mit Leerzeichen als EIN Parameter übergeben wird?


    So, also was kann ich nun tun, um den letzten Parameter vernünftig abzufragen?


    Danke schonmal für deine/eurer Hilfe :)

  • Hi purgebacke,


    nimm' mal die Backslashes raus ;D


    Viele Grüße
    Chriss

  • Hi Chriss,


    danke für deine Antwort, aber ich glaube, du hast mich missverstanden:
    in der S90.custom steht als Anleitung:

    Code
    ..
    # i.e.:
    #
    # echo "ABORT_MESSAGE=\"I do not want to shutdown now!\"" ; exit 1
    #


    Die Backslash'es gehören also schon dahin, damit folgende Ausgabe an stdout ausgegeben wird:

    Code
    ABORT_MESSAGE="I do not want to shutdown now!"


    Mein kleines script S90.custom vom ersten Posting funktioniert ja auch.
    Das Problem liegt darin, dass $5 nicht den gewünschten Parameter zurückgibt, sondern ein Teil des Timernamens (also eigentlich des vierten Parameters)... Nochmal anders ausgedrückt: wenn du dir den Aufruf von vdr-shutdown aus dem message-log in meinem ersten posting anschaust, will ich an die "1" am Schluss herankommen..



    Missverständnis aufgeklärt?


    ----
    Ich habe gerade rausgefunden, dass man mit "${!#}" den letzten Parameter herausbekommt. Das hilft mir jetzt weiter, obwohl ich es etwas unschän finde und immernoch der Meinung bin, dass da etwas beim Aufruf vom vdr-shutdown script nicht stimmt :)
    Also, wenn jemand noch mehr darüber weiss....

  • Hallo,


    wenn du in der /usr/lib/vdr/vdr-shutdown die Zeile

    Code
    result_data=`/bin/sh $shutdownhook $*`


    änderst in

    Code
    result_data=`/bin/sh $shutdownhook $1 $2 $3 "$4" $5`


    dann sollte es klappen.
    Bei der Weitergabe der Parameter gehen sonst wohl die Anführungszeichen verloren.


    Gruß
    Bernd


    edit: Nach ein bisschen Suchen in der Hilfe habe ich was besseres gefunden:

    Code
    result_data=`/bin/sh $shutdownhook "$@"`

    Hardware: Hewletts 130mm-Gehäuse, MSI RS480M2, Athlon 64 3000+, 1 GB RAM, 1x TT DVB-C FF, 1x Nova-T, 400 GB HDD, STBs AVBoard, PowerMate, LCD 240x128
    Software: Debian Etch, 2.6.18, VDR 1.4.7, epgsearch, extrecmenu, image, muggle, mplayer, dvd, cdda, mediamanager, mailbox, mlist, graphlcd, remote, powermate, skinenigmang, fritzbox

    Einmal editiert, zuletzt von berndm ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!