Hmm, letzter Versuch 😉
Wir müssen zwei Sachen gewähleisten:
Die Variablen-Zuweisung im Skript muß Anführungszeichen im Wert zulassen.
Das erreichen wir durch:
VDRPLUGINS='-P "softdevice -ao alsa:pcm=default -vo dfb:"'
Dadurch das wir die Zuweisung in SingleQuotes (') einschließen sagen wir der bash:
"Bitte keine Interpretation von Sonderzeichen wie Leerstelle, ", o.ä.. Nimm es
wie es ist."
SingleQuotes verhindern das Auswerten *aller* Sonderzeichen, d.h. ein:
echo 'My home is $HOME' gibt als Ausgabe wirklich: My home is $HOME aus.
Während Umschließen mit Anführungsstrichen(") nur die Auswertung der meisten Sonderzeichen verhindert.
Für die Var-Zuweisung und Verarbeitung *im* Skript haben wir also gesorgt. Jetzt muß
beim Ausführen/Starten des Programms mit seinen Parametern auch dafür gesorgt
werden, daß keine Interpretation vorgenommen wird.
exec ist nicht die richtige Wahl (ich habe mich täuschen lassen da ich vdr ja nicht
installiert habe. exec würde auch das Skript an dieser Stelle sofort unterbrechen,
was sicher nicht gewollt ist.
Versuche beim Programmaufruf im Skript mal etwas zu spielen, basierend auf dem
oben Genannten.
Also Versionen wie:
"/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 $VDRPLUGINS"
/usr/bin/vdr -c /etc/vdr -E /var/vdr -d -L /usr/lib/vdr -s /usr/bin/vdrshutdown "$VDRPLUGINS"
Du siehst, durch das Umschließen des Befehls oder der Parameter soll ereicht werden,
daß der Variablenwert durch die startende Shell nochmals auf Sonderzeichen hin interpretiert wird.
Irgendwie *muß* es so gehen. Wenn ich /usr/bin/vdr durch /usr/bin/vim ersetze,
dann funktioniert es (bis auf die Tatsache daß vim mit den Parametern nichts anfangen kann).