[gelöst] Scripts in reccmds.conf

  • Welchen Wert für das Verzeichnis mit der Aufnahme übergibt vdr denn an das Script?

    Was genau steht denn im syslog in der

    Code
    executing command ...

    Zeile?


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • hm, die " von Blade_Runner sind mit \ escaped, und

    Code
    echo "/video/%Das_Phänomen_\"Blade_Runner\"/2023-10-08.22.08.5-0.rec"

    funktioniert bei mir und gibt

    Code
    /video/%Das_Phänomen_"Blade_Runner"/2023-10-08.22.08.5-0.rec

    aus. Also würde ich mal sagen, dass vdr das richtig macht und das Script

    Code
    /usr/local/bin/convnow.sh vdrcutter

    irgendwo einen Fehler hat und das Escapen nicht richtig macht ...


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Man könnte beim Einlesen noch mal das folgende probieren:

    FNAME="${2//\"/\\\"}"

    Das sollte die " erneut escapen.

    Eigentlich nicht sinnvoll, aber vielleicht bringt es was...


    Bzw. Man ersetzt die " einfach mal durch was anderes (zB. X), um zu sehen, ob die wirklich nicht ankommen:

    FNAME="${2//\"/X}"

    Gruss
    SHF


  • Oh, Mann :wand :wand :wand


    Ich hab mir nochmal den Aufruf in der vdr Software angeschaut:


    if (execl("/bin/sh", "sh", "-c", Command, NULL) == -1) {


    und in Command steht genau das, was in der Zeile im syslog auftaucht


    Okt 12 10:51:17 mannitec02 vdr[33591]: [33591] executing command '/usr/local/bin/convnow.sh vdrcutter "/video/%Das_Phänomen_\"Blade_Runner\"/2023-10-08.22.08.5-0.rec"'


    drinsteht, also mit geescapten Tüddelchen. Ich hab dann mal ein kleines Testscript erzeugt mit dem ich nur ein echo auf den Parameter in eine Logdatei gemacht habe. Und was soll ich sagen: Die Tüddelchen werden ins log geschrieben. Also Übergabe OK.


    Dann hab ich mein convnow.sh wieder in den Ursprungszustand (Backup) zurückgesetzt. Zusätzlich noch dies ergänzt um den eingerückten Teil:


    Code
    FNAME=$(echo ${FNAME}|sed \
    -e "s/'/\\\'/g" \
        -e 's/\"/\\\"/g' \
    -e "s/(/\\\(/g" \
    -e "s/)/\\\)/g" \
    -e "s/&/\\\&/g")


    Und ... Es funktioniert. Da wird doch der Hund in der Pfanne verrückt!


    Also, ein großes "Sorry for the Noise"!!!

    msv

Jetzt mitmachen!

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