Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/07/2006, à 02:35

david breizh

script bash

salut tout le monde !

j'ai déjà posté mon script pour les webradios mais cette fois j'ai voulu le rafaire avec zenity mais le problème c'est que je ne sais pas pour faire une boucle , quand je ferme mplayer pour qu'il revienne au tableau, je poste mon script (c'est le premier):

#!/bin/sh

#lecteur par défault
lecteur="gnome-terminal -x mplayer"

# Choisir l'émission à télécharger
title="Choisissez votre web radio online"
text="Choisissez dans la liste."
radios=`zenity --title "$title" --height=320 --width=290 --text "$text" --list --column="radios" "Chérie FM" "Divergences FM" "Europe 2" "France Culture" "Fun Radio" "Le Mouv" "NRJ" "Skyrock"`


# Si l'utilisateur clic sur "annuler"

if [ "$?" != 0 ] ; then
    exit
fi


# L'utilisateur doit faire un choix pour continuer

radios=`echo $radios | sed 's/ max//g'`
if [ ! "$radios" ]; then
    zenity --error --title="erreur" --text="Vous devez faire un choix avant de valider"
    exit
fi

# Si l'utilisateur clic sur "annuler"

if [ "$?" != 0 ] ; then
    exit
fi


# La webradio choisie

if [ "$radios" == "Chérie FM" ]; then
    $lecteur mms://vip1.yacast.fr/encodercheriefm
fi

if [ "$radios" == "Divergences FM" ]; then
    $lecteur http://stream.oyez.info:8000/divergence.ogg
fi

if [ "$radios" == "Europe 2" ]; then
    $lecteur mms://viptvr.yacast.fr/tvr_europe2
fi

if [ "$radios" == "France Culture" ]; then
    $lecteur mms://viptvr.yacast.net/tvr_franceculture
fi

if [ "$radios" == "Fun Radio" ]; then
    $lecteur mms://vip2.yacast.fr/encoderfun
fi

if [ "$radios" == "Le Mouv" ]; then
    $lecteur mms://viptvr.yacast.fr/encoderlemouv
fi

if [ "$radios" == "NRJ" ]; then
    $lecteur mms://vip1.yacast.fr/encodernrj
fi

if [ "$radios" == "Skyrock" ]; then
    $lecteur mms://vipbu.yacast.fr/encoderskyrock
fi

voilà, je continu a chercher , mais si quelqu'un pouvait me donner un petit coup de main ça serai sympa d sa part


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#2 Le 05/07/2006, à 04:34

kikdijon

Re : script bash

bonjour,

pour faire une boucle, c'est:

 while [ condition ]; do
...
done

pour ce qui est de tes multiples if [ "$radio" ... ], tu peux remplacer ça par un case, c'est plus élégant wink

case $radio in
  "Chérie Fm")
    $lecteur mms://vip1.yacast.fr/encodercheriefm

  "Divergences fm")
    $lecteur http://stream.oyez.info:8000/divergence.ogg

   [etc]

esac

blog : http://blog.olivier-elmekki.com
site professionnel : http://olivier-elmekki.com

Hors ligne

#3 Le 05/07/2006, à 14:02

david breizh

Re : script bash

ok merci je vais faire ça


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#4 Le 05/07/2006, à 15:16

david breizh

Re : script bash

bon j'ai fait une des modifications du script mais je bloque pour faire un retour après la lecture avec mplayer, je post :

#!/bin/sh

#lecteur par défault
lecteur="gnome-terminal -x mplayer"


# Choisir l'émission à télécharger
title="Choisissez votre web radio online"
text="Choisissez dans la liste."
radios=`zenity --title "$title" --height=320 --width=290 --text "$text" --list --column="radios" "Chérie FM" "Divergences FM" "Europe 2" "France Culture" "Fun Radio" "Le Mouv" "NRJ" "Skyrock"`


# Si l'utilisateur clic sur "annuler"

if [ "$?" != 0 ] ; then
   exit
fi


# L'utilisateur doit faire un choix pour continuer

radios=`echo $radios | sed 's/ max//g'`
if [ ! "$radios" ]; then
    zenity --error --title="erreur" --text="Vous devez faire un choix avant de valider"
fi

# Si l'utilisateur clic sur "annuler"

if [ "$?" != 0 ] ; then
    exit
fi


# La webradio choisie

case $radios in
"Chérie FM")$lecteur mms://vip1.yacast.fr/encodercheriefm;;
"Divergences FM")$lecteur http://stream.oyez.info:8000/divergence.ogg;;
"Europe 2")$lecteur mms://viptvr.yacast.fr/tvr_europe2;;
"France Culture")$lecteur mms://viptvr.yacast.net/tvr_franceculture;;
"Fun Radio")$lecteur mms://vip2.yacast.fr/encoderfun;;
"Le Mouv")$lecteur mms://viptvr.yacast.fr/encoderlemouv;;
"NRJ")$lecteur mms://vip1.yacast.fr/encodernrj;;
"Skyrock")$lecteur mms://vipbu.yacast.fr/encoderskyrock;;
esac
done


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#5 Le 05/07/2006, à 15:44

david breizh

Re : script bash

bon j'ai réussi ma boucle mais il y a quelques chose qui ne va pas, car la ça me fait la boucle tout de suite en même temps que mplayer et en fait je voudrai que mon tableau zenity réapparaisse après avoir quitter mplayer et non pendant.

je poste encore une fois:

#!/bin/bash

#lecteur par défault
lecteur="gnome-terminal -x mplayer"

while [ "$radios" != "fin" ]
do
# Choisir l'émission à télécharger
title="Choisissez votre web radio online"
text="Choisissez dans la liste."
radios=`zenity --title "$title" --height=320 --width=290 --text "$text" --list --column="radios" "Chérie FM" "Divergences FM" "Europe 2" "France Culture" "Fun Radio" "Le Mouv" "NRJ" "Skyrock" "fin"`


# Si l'utilisateur clic sur "annuler"

if [ "$?" != 0 ] ; then
   exit
fi


# L'utilisateur doit faire un choix pour continuer

radios=`echo $radios | sed 's/ max//g'`
if [ ! "$radios" ]; then
    zenity --error --title="erreur" --text="Vous devez faire un choix avant de valider"
fi

# Si l'utilisateur clic sur "annuler"

if [ "$?" != 0 ] ; then
    exit
fi


# La webradio choisie

case $radios in
"Chérie FM")$lecteur mms://vip1.yacast.fr/encodercheriefm;;
"Divergences FM")$lecteur http://stream.oyez.info:8000/divergence.ogg;;
"Europe 2")$lecteur mms://viptvr.yacast.fr/tvr_europe2;;
"France Culture")$lecteur mms://viptvr.yacast.net/tvr_franceculture;;
"Fun Radio")$lecteur mms://vip2.yacast.fr/encoderfun;;
"Le Mouv")$lecteur mms://viptvr.yacast.fr/encoderlemouv;;
"NRJ")$lecteur mms://vip1.yacast.fr/encodernrj;;
"Skyrock")$lecteur mms://vipbu.yacast.fr/encoderskyrock;;
esac
done


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#6 Le 05/07/2006, à 16:46

david breizh

Re : script bash

en fait , c'est pas une boucle qu'il faut mais plutot un style de GOTO(comme en basic, houlà mes début) pour qu'une fois mplayer fermer ou quitter , revenir au tableau, ça à l'air con mon truc mal je bloque dessus depuis un bon moment.


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#7 Le 05/07/2006, à 18:32

david breizh

Re : script bash

personne n'a d'idées?


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#8 Le 05/07/2006, à 18:34

david breizh

Re : script bash

je poste a nouveau mon script (changer) :

#!/bin/bash

#lecteur par défault
lecteur="gnome-terminal -x mplayer"


# Choisir l'émission à télécharger
fonky(){
title="Choisissez votre web radio online"
text="Choisissez dans la liste des radios."
radios=`zenity --title "$title" --height=350 --width=290 --text "$text" --list --column="liste" "Chérie FM" "Divergences FM" "Europe 2" "France Culture" "Fun Radio" "Le Mouv" "NRJ" "Skyrock"`
}
# Si l'utilisateur clic sur "annuler"

fonky




# L'utilisateur doit faire un choix pour continuer

radios=`echo $radios | sed 's/ max//g'`

# La webradio choisie

case $radios in
"Chérie FM")      $lecteur mms://vip1.yacast.fr/encodercheriefm;;
"Divergences FM") $lecteur http://stream.oyez.info:8000/divergence.ogg;;
"Europe 2")       $lecteur mms://viptvr.yacast.fr/tvr_europe2;;
"France Culture") $lecteur mms://viptvr.yacast.net/tvr_franceculture;;
"Fun Radio")      $lecteur mms://vip2.yacast.fr/encoderfun;;
"Le Mouv")        $lecteur mms://viptvr.yacast.fr/encoderlemouv;;
"NRJ")            $lecteur mms://vip1.yacast.fr/encodernrj;;
"Skyrock")        $lecteur mms://vipbu.yacast.fr/encoderskyrock;;
*)                zenity --error --title="erreur" --text="faire un choix avant de valider";;
esac


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#9 Le 05/07/2006, à 19:14

avelldiroll

Re : script bash

Salut,
[HS :
* Pour avoir plus de réponses, le plus simple est souvent de poster dans des forums ou des ng dédié au langage utilisé.
* Par pitié pas de GOTO : il y a des raisons pour lesquelles cette structure est déconseillée, à terme ça rend le code illisible]


Je suis vraiment rouillé en bash, mais les modifs dont je parle marchent chez moi :
J'ai repris ton dernier script, remis la prise en compte de l'annulation et déposé le tout dans une jolie boucle infinie (je sais c'est pas propre mais ça permet de ne pas bousculer ton code). Ensuite il suffit d'ajouter des "wait" après chaque lancement de mplayer (pour ne pas se retrouver avec un lancement continu de terminaux).  Ce n'est pas encore parfait, (zenity se relance avant de que l'on ferme un terminal, mais au moins il se relance et attend la suite) mais ça devrait répondre à ta première question.

Bonne continuation !

#!/bin/bash

#lecteur par défault
lecteur="gnome-terminal -x mplayer"

# Choisir l'émission à télécharger
fonky(){
title="Choisissez votre web radio online"
text="Choisissez dans la liste des radios."
radios=`zenity --title "$title" --height=350 --width=290 --text "$text" --list --column="liste" "Chérie FM" "Divergences FM" "Europe 2" "France Culture" "Fun Radio" "Le Mouv" "NRJ" "Skyrock"`
}

while true ; do

fonky
# L'utilisateur doit faire un choix pour continuer
# Si l'utilisateur clic sur "annuler"
if [ "$?" != 0 ] ; then
    exit
fi

radios=`echo $radios | sed 's/ max//g'`

# La webradio choisie

case $radios in
"Chérie FM")      $lecteur mms://vip1.yacast.fr/encodercheriefm; wait ;;
"Divergences FM") $lecteur http://stream.oyez.info:8000/divergence.ogg; wait ;;
"Europe 2")       $lecteur mms://viptvr.yacast.fr/tvr_europe2; wait ;;
"France Culture") $lecteur mms://viptvr.yacast.net/tvr_franceculture; wait ;;
"Fun Radio")      $lecteur mms://vip2.yacast.fr/encoderfun; wait ;;
"Le Mouv")        $lecteur mms://viptvr.yacast.fr/encoderlemouv; wait ;;
"NRJ")            $lecteur mms://vip1.yacast.fr/encodernrj; wait ;;
"Skyrock")        $lecteur mms://vipbu.yacast.fr/encoderskyrock; wait ;;
*)                zenity --error --title="erreur" --text="faire un choix avant de valider";;
esac

done

"Les ordinateurs permettent à l'humanité de faire des erreurs le plus rapidement du monde, ... à l'exception peut-être de la tequila et des armes à feu."
Merci de lire ceci de temps à autre ...

Hors ligne

#10 Le 06/07/2006, à 00:57

david breizh

Re : script bash

bon je n'avais pas préciser mais j'avais déjà fait des boucles de plusieurs façons différentes ells marchaient toutes impec le seul problème c'est que je veux pas une boucle mais un retour au tableau après mplayer car sinon il revient en même temps que le terminal mais bon, je suis en train de voire l'utilisation de python, java ,pour voir les choix possibles .


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne

#11 Le 06/07/2006, à 09:41

avelldiroll

Re : script bash

Les interfaces graphiques gérées en bash ateingnent vite leut limite ...

Visiblement des gens se sont interessés à ce pb en python :
http://forum.ubuntu-fr.org/viewtopic.php?id=45431

Perso je conserverais l'idée de présenter une liste plutôt que des boutons, et je regarderai du côté de pymedia pour gérer les streams audio à la place de mplayer.


"Les ordinateurs permettent à l'humanité de faire des erreurs le plus rapidement du monde, ... à l'exception peut-être de la tequila et des armes à feu."
Merci de lire ceci de temps à autre ...

Hors ligne

#12 Le 06/07/2006, à 12:36

david breizh

Re : script bash

oui j'ai vu et je suis en train d'apprendre python et wxpython pour me faire des petits progs sympas


ah ! du fin fond de la bretagne grâce au libre on se sent moins seul!
Vive le libre et toutes les distributions qui m'ont fait découvrir le monde de linux!

Hors ligne