Hallo,
ich habe versucht, für meinen VDR ein Startscript aufzubauen. Es soll eine Liste von Plugins aus einer Config-Datei laden und an den VDR übergeben.
Das funktioniert mit einfachen Plugins auch hervorragend. Nur scheitere ich am Softdevice, weil dieses zusätzliche Parameter braucht.
Hier mal das Script (Plugin-Liste ist hier der Einfachheit halber mal hart drin):
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
VDRPLUGINS='-P "softdevice -ao alsa:pcm=default -vo dfb:"'
case "$1" in
start)
stat_busy "Starting VDR"
/usr/bin/vdr -c /etc/vdr -E /var/vdr -d -L /usr/lib/vdr -s /usr/bin/vdrshutdown $VDRPLUGINS
# /usr/bin/vdr -c /etc/vdr -E /var/vdr -d -L /usr/lib/vdr -s /usr/bin/vdrshutdown -P "softdevice -ao alsa:pcm=default -vo dfb:"
if [ $? -gt 0 ]; then
stat_fail
else
stat_done
fi
;;
stop)
stat_busy "Stopping VDR"
killall --quiet --wait /usr/bin/vdr
if [ $? -gt 0 ]; then
stat_fail
else
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
;;
esac
Alles anzeigen
Das Problem liegt bei VDRPLUGINS. Beim Aufruf von vdr wirft mit die Bash die double Quotes raus. D.h. VDR erkennt die Parameter nicht nicht mehr als zum softdevice gehörig. Der auskommentierte Aufruf funktioniert übrigens.
Ich habe nun schon alle möglichen Varianten durch. Aber nichts will laufen. Escapen habe ich auch schon probiert. Also sowas:
und sowas:
In beiden Fällen kommt das hier raus:
/usr/bin/vdr -c /etc/vdr -E /var/vdr -d -L /usr/lib/vdr -s /usr/bin/vdrshutdown -P '"softdevice' -ao alsa:pcm=default -vo 'dfb:"'
Ich muss dazu sagen, ich bin nicht der Bash-Experte. Das meiste ist aus anderen Scripten abgeschaut.
Jedenfalls komm ich da nicht mehr weiter.
Wie ist das hinzukriegen?
Grüße