View previous topic :: View next topic |
Author |
Message |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Fri Feb 03, 2006 11:12 am Post subject: [shell] script detection vdr (resolu) |
|
|
Bonjour à tous!
Voilà,j'ai installer gentoo pour faire fonctionner vdr,et j'aimerai faire un script de detection pour lançer aaxine uniquement àprès que vdr soit actif,et vu que je n'y connait rien en shell,je me tourne vers vous
voilà mon debut de script.....ne pas rigoler svp
#!/bin/sh
TEST="`/bin/pstree | grep -w 'vdr' | wc -l`"
XINE="/usr/local/bin/aaxine"
STREAM="vdr://tmp/vdr-xine/stream#demux:mpeg_pes"
if [ $TEST -eq 1 ] ; then
$XINE -V aadxr3 $STREAM
fi
while (false) ; do
echo "attente de stream"
done
biensûr ça ne fonctionne pas,si une âme charitable pouvait m'éclairer .....
Last edited by grizzmo on Sat Feb 04, 2006 12:37 am; edited 2 times in total |
|
Back to top |
|
 |
Enlight Advocate


Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Fri Feb 03, 2006 11:24 am Post subject: Re: script detection vdr |
|
|
J'ai pas trop regardé le test en soit mais pour executer une commande qui commence par une variable, 2 solutions qui revient au même :
eval $fait $ce $que $je $te $dis mais faut jongler avec les "" et '' quand t'as des bouts de texte et tout.
`echo "$fait $ce $que $je $te $dis"`
`
donc a première vue :
grizzmo wrote: |
#!/bin/sh
TEST="`/bin/pstree | grep -w 'vdr' | wc -l`"
XINE="/usr/local/bin/aaxine"
STREAM="vdr://tmp/vdr-xine/stream#demux:mpeg_pes"
if [ $TEST -eq 1 ] ; then
`echo " $XINE -V aadxr3 $STREAM"` #backquotes hein! pas single quotes
fi
while (false) ; do
echo "attente de stream"
done
biensûr ça ne fonctionne pas,si une âme charitable pouvait m'éclairer ..... |
|
|
Back to top |
|
 |
kopp Advocate


Joined: 09 Apr 2004 Posts: 2885 Location: Grenoble, France
|
Posted: Fri Feb 03, 2006 3:08 pm Post subject: |
|
|
Bonjour et bienvenue,
peux-tu lire nos conventions et mettre ton titre à jour s'il te plait ?
Merci! |
|
Back to top |
|
 |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Fri Feb 03, 2006 8:13 pm Post subject: |
|
|
désolé pour le titre
sinon,le script fonctionne quand vdr est déjà lançé,mais si je l'execute avant vdr,il ne trouve rien  |
|
Back to top |
|
 |
Enlight Advocate


Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Fri Feb 03, 2006 8:31 pm Post subject: |
|
|
grizzmo wrote: | désolé pour le titre
sinon,le script fonctionne quand vdr est déjà lançé,mais si je l'execute avant vdr,il ne trouve rien  |
Normal, to while est après le if qui teste l'existence du stream. laisse moi 2 secondes pour copier coller et j'edite
edit : (juste moi j'ai un doute sur le -w pour grep vu le caractère zarb que colle pstree devant les noms de processus)
Quote: | #!/bin/sh
TEST="/bin/pstree | grep -w 'vdr' | wc -l"
XINE="/usr/local/bin/aaxine"
STREAM="vdr://tmp/vdr-xine/stream#demux:mpeg_pes"
echo -n "Attente de stream..."
while (`echo $TEST` -eq 0 ) ;
do
done
echo "[stream trouvé]"
`echo " $XINE -V aadxr3 $STREAM"` #backquotes hein! pas single quotes
|
ça marche ça? edit 2 : ça devrait y'être passé les 42 erreurs de syntaxe habituelles... |
|
Back to top |
|
 |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Fri Feb 03, 2006 8:58 pm Post subject: |
|
|
non,toujours pas,
j'ai bien "Attente de stream" qui défile,mais rien quand je lance vdr,ça continue.... |
|
Back to top |
|
 |
Enlight Advocate


Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Fri Feb 03, 2006 9:01 pm Post subject: |
|
|
grizzmo wrote: | non,toujours pas,
j'ai bien "Attente de stream" qui défile,mais rien quand je lance vdr,ça continue.... |
et si tu vires le -w de grep? (ps fait gaffe j'ai édité 42 fois mon post précédent) |
|
Back to top |
|
 |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Fri Feb 03, 2006 9:09 pm Post subject: |
|
|
arf
line 10: syntax error near unexpected token `done'
en tout cas merci pour les réponses éclaires  |
|
Back to top |
|
 |
Enlight Advocate


Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Fri Feb 03, 2006 9:18 pm Post subject: |
|
|
grizzmo wrote: | arf
line 10: syntax error near unexpected token `done'
en tout cas merci pour les réponses éclaires  |
Lol, oki! Pas de quoi, par contre, par contre... le (résolu) stp  |
|
Back to top |
|
 |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Fri Feb 03, 2006 9:27 pm Post subject: |
|
|
lol nop pas encore
marche toujours pas !
le merci c'était pour la rapidité des réponses mais pour le script,j'ai une erreur à done...et si je le met à la fin ça me met:
line 8: 0: command not found
et pour la ligne
TEST="/bin/pstree | grep -w 'vdr' | wc -l"
il faut bien que je mette les backquotes,
TEST="`/bin/pstree | grep -w 'vdr' | wc -l`"
sinon y'a une erreur sur pstree.....
 |
|
Back to top |
|
 |
Enlight Advocate


Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Fri Feb 03, 2006 9:48 pm Post subject: |
|
|
grizzmo wrote: | lol nop pas encore
marche toujours pas !
le merci c'était pour la rapidité des réponses mais pour le script,j'ai une erreur à done...et si je le met à la fin ça me met:
line 8: 0: command not found
et pour la ligne
TEST="/bin/pstree | grep -w 'vdr' | wc -l"
il faut bien que je mette les backquotes,
TEST="`/bin/pstree | grep -w 'vdr' | wc -l`"
sinon y'a une erreur sur pstree.....
 |
non, normalement pas vu que dans la condition du while je fais `echo $TEST` |
|
Back to top |
|
 |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Fri Feb 03, 2006 9:52 pm Post subject: |
|
|
en fait,tel qu'il est il y me fait
line 10: syntax error near unexpected token `done' |
|
Back to top |
|
 |
Enlight Advocate


Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Fri Feb 03, 2006 10:19 pm Post subject: |
|
|
Effectivement j'avais mal testé un truc, a priori pas le droit aux bacquotes dans la condition du while.
Code: | #!/bin/sh
TEST="`/bin/pstree | grep -w 'vdr' | wc -l`"
XINE="/usr/local/bin/aaxine"
STREAM="vdr://tmp/vdr-xine/stream#demux:mpeg_pes"
while (true) ; do
if [ $TEST -eq 1 ] ; then
echo -n "attente de stream"
echo "\t [ok]"
`echo " $XINE -V aadxr3 $STREAM"`
break
fi
done
|
je croise les doigts vu que j'ai pas ce qu'il faut pour tester.
edit : while (true) p'tain dodo mwa! |
|
Back to top |
|
 |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Fri Feb 03, 2006 10:41 pm Post subject: |
|
|
il n'y a plus d'erreurs dans le script,mais il ne fait rien quand je lance vdr,il attend sans voir que la valeur et passée à 1
mais si la valeur et déjà à 1,il lançe bien xine...
ps:j'utilise 2 console séparées pour faire les tests,est-ce qu'il ya un rapport??? |
|
Back to top |
|
 |
Enlight Advocate


Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Fri Feb 03, 2006 11:23 pm Post subject: |
|
|
grizzmo wrote: | il n'y a plus d'erreurs dans le script,mais il ne fait rien quand je lance vdr,il attend sans voir que la valeur et passée à 1
mais si la valeur et déjà à 1,il lançe bien xine...
ps:j'utilise 2 console séparées pour faire les tests,est-ce qu'il ya un rapport??? |
Aaaah mais chuis trop c... c'est pour ça qu'il fallait que les backquotes soient dans le test et pas dans la variable (comment remettre une erreur antécédante en corrigeant la dernière ) sinon il n'est évalué qu'au début de l'execution et pas au moment du test comme on veut.!!!
Code: | #!/bin/sh
TEST_COMMAND="/bin/pstree | grep -w 'vdr' | wc -l"
XINE="/usr/local/bin/aaxine"
STREAM="vdr://tmp/vdr-xine/stream#demux:mpeg_pes"
while (true) ; do
TEST=`echo "$TEST_COMMAND"`
if [ $TEST -eq 1 ] ; then
echo -n "attente de stream"
echo "\t [ok]"
`echo " $XINE -V aadxr3 $STREAM"`
break
fi
done |
|
|
Back to top |
|
 |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Sat Feb 04, 2006 12:09 am Post subject: |
|
|
j'ai testé mais il me repond
line 9: [: too many arguments
line 9: [: too many arguments
line 9: [: too many arguments
etc......
il ne prend pas la variable TEST_COMMAND sans les backquotes.....
et si je les remets,plus de message d'erreur mais il attend sans rien trouvé.
sur ce, la nuit porte conseils y parait  |
|
Back to top |
|
 |
grizzmo n00b

Joined: 03 Feb 2006 Posts: 13
|
Posted: Sat Feb 04, 2006 12:36 am Post subject: |
|
|
alors bonne nouvelle,j'ai testé comme ça et ça fonctionne
#!/bin/sh
XINE="/usr/local/bin/xine"
STREAM="vdr://tmp/vdr-xine/stream#demux:mpeg_pes"
while (true) ; do
echo -n "attente de stream"
TEST=`/bin/pstree | grep -w 'vdr' | wc -l`
if [ $TEST -eq 1 ] ; then
echo "\t [ok]"
`echo " $XINE -V xv $STREAM"`
break
fi
done
merci encore Enlight pour ton aide  |
|
Back to top |
|
 |
|