Hi...
ich hätte gerne eine runvdr.sh, der ich die Plugins und Optionen für vdr über Variablen mittteilen kann.
Das funktioniert soweit auch ganz, bis es an die Plugins geht, deren Befehl "geteilt" ist, sprich ein Leerzeichen beinhaltet.
Bestes Beispiel ist mplayer mit der Option für die mplayer.sh.
Schaut mein Script so aus:
#!/bin/bash
VDRPRG="/usr/local/bin/vdr"
VDRUSR="-u root"
CONF_DIR="-c /etc/vdr"
EPG_DIR="-E /vdr/epg"
VIDEO_DIR="-v /vdr/video"
PLUGIN_DIR="-L /etc/vdr/plugins"
LOG_LEVEL="-l 3.7"
CONSOLE="-t /dev/tty8"
WATCHDOG_TIME="-w 60"
typeset -a OPTIONS
typeset -a VDRCMD
OPTIONS[1]="-P text2skin"
OPTIONS[2]="-P undelete"
OPTIONS[3]="-P osdteletext -r"
OPTIONS[4]="-P mplayer -M /usr/local/bin/mplayer.sh"
OPTIONS[5]="-P sudoku"
OPTIONS[6]="-r /usr/local/bin/noadcall.sh"
OPTIONS[7]="-s /usr/local/bin/shutdownvdr.sh"
OPTIONS[8]=""
VDRCMD=($VDRPRG $VDRUSR $WATCHDOG_TIME $CONF_DIR $EPG_DIR $VIDEO_DIR $PLUGIN_DIR $LOG_LEVEL $CONSOLE ${OPTIONS[@]})
while true;
do
$VIDEO_DIR $PLUGIN_DIR $LOG_LEVEL $CONSOLE ${OPTIONS[@]}
"${VDRCMD[@]}"
if test $? -eq 0 -o $? -eq 2; then
exit
Alles anzeigen
... dann gibt' folgende Ausgabe:
sh -xx /usr/local/bin/runvdr.sh
+ VDRPRG=/usr/local/bin/vdr
+ VDRUSR='-u root'
+ CONF_DIR='-c /etc/vdr'
+ EPG_DIR='-E /vdr/epg'
+ VIDEO_DIR='-v /vdr/video'
+ PLUGIN_DIR='-L /etc/vdr/plugins'
+ LOG_LEVEL='-l 3.7'
+ CONSOLE='-t /dev/tty8'
+ WATCHDOG_TIME='-w 60'
+ typeset -a OPTIONS
+ typeset -a VDRCMD
+ OPTIONS[1]='-P text2skin'
+ OPTIONS[2]='-P undelete'
+ OPTIONS[3]='-P osdteletext -r'
+ OPTIONS[4]='-P mplayer -M /usr/local/bin/mplayer.sh'
+ OPTIONS[5]='-P sudoku'
+ OPTIONS[6]='-r /usr/local/bin/noadcall.sh'
+ OPTIONS[7]='-s /usr/local/bin/shutdownvdr.sh'
+ OPTIONS[8]=
+ VDRCMD=($VDRPRG $VDRUSR $WATCHDOG_TIME $CONF_DIR $EPG_DIR $VIDEO_DIR $PLUGIN_DIR $LOG_LEVEL $CONSOLE ${OPTIONS[@]})
+ true
+ /usr/local/bin/vdr -u root -w 60 -c /etc/vdr -E /vdr/epg -v /vdr/video -L /etc/vdr/plugins -l 3.7 -t /dev/tty8 -P text2skin -P undelete -P osdteletext -r -P mplayer -M /usr/local/bin/mplayer.sh -P sudoku -r /usr/local/bin/noadcall.sh -s /usr/local/bin/shutdownvdr.sh
/usr/local/bin/vdr: Ungültige Option -- M
+ test 2 -eq 0 -o 2 -eq 2
+ exit
Alles anzeigen
Soweit versteh' ich das ja auch noch...
änder ich das ganze allerdings in die Richtung
[...]
OPTIONS[4]="-P 'mplayer -M /usr/local/bin/mplayer.sh'"
[...]
dann passiert das hier:
sh -xx /usr/local/bin/runvdr.sh
+ VDRPRG=/usr/local/bin/vdr
+ VDRUSR='-u root'
+ CONF_DIR='-c /etc/vdr'
+ EPG_DIR='-E /vdr/epg'
+ VIDEO_DIR='-v /vdr/video'
+ PLUGIN_DIR='-L /etc/vdr/plugins'
+ LOG_LEVEL='-l 3.7'
+ CONSOLE='-t /dev/tty8'
+ WATCHDOG_TIME='-w 60'
+ typeset -a OPTIONS
+ typeset -a VDRCMD
+ OPTIONS[1]='-P text2skin'
+ OPTIONS[2]='-P undelete'
+ OPTIONS[3]='-P osdteletext -r'
+ OPTIONS[4]='-P '\''mplayer -M /usr/local/bin/mplayer.sh'\'''
+ OPTIONS[5]='-P sudoku'
+ OPTIONS[6]='-r /usr/local/bin/noadcall.sh'
+ OPTIONS[7]='-s /usr/local/bin/shutdownvdr.sh'
+ OPTIONS[8]=
+ VDRCMD=($VDRPRG $VDRUSR $WATCHDOG_TIME $CONF_DIR $EPG_DIR $VIDEO_DIR $PLUGIN_DIR $LOG_LEVEL $CONSOLE ${OPTIONS[@]})
+ true
+ /usr/local/bin/vdr -u root -w 60 -c /etc/vdr -E /vdr/epg -v /vdr/video -L /etc/vdr/plugins -l 3.7 -t /dev/tty8 -P text2skin -P undelete -P osdteletext -r -P ''\''mplayer' -M '/usr/local/bin/mplayer.sh'\''' -P sudoku -r /usr/local/bin/noadcall.sh -s /usr/local/bin/shutdownvdr.sh
/usr/local/bin/vdr: Ungültige Option -- M
+ test 2 -eq 0 -o 2 -eq 2
+ exit
Alles anzeigen
Da steh ich vor nem Rätsel... Wie bring ich das Ding dazu, die Hochkommata einfach zu übernehmen, und den passenden AUfruf zu machen?
Weiss da jemand weiter?
Solemn