#1 Le 12/06/2011, à 22:38
- compte supprimé
[Résolu] Noob en difficulté pour créer un script pour ripper DVD
Bonjour la communauté,
J'ai un petit problème concernant le script ci-dessous.
J'aimerai savoir comment faire si je ne fais aucun choix que la liste des couleurs revienne en boucle après l'info
"Vous avez choisi aucune couleur recommencer !"
#!/bin/bash
set -xv
############
# FONCTION #
############
##########################################################################
function ANNULER()
{
if [ "$?" != 0 ]
then
zenity --info --text "Au revoir"
exit
fi
}
##########################################################################
function ROUGE()
{
zenity --info --text "Vous avez choisi la couleur rouge"
}
##########################################################################
function VERTE()
{
zenity --info --text "Vous avez choisi la couleur verte"
}
##########################################################################
function BLEUE()
{
zenity --info --text "Vous avez choisi la couleur bleue"
}
##########################################################################
function NUL()
{
zenity --info --text "Vous avez choisi aucune couleur recommencer !"
}
##########################################################################
#############
# PROGRAMME #
#############
choix=`zenity --list \
--radiolist \
--text="Quelle couleur voulez-vous choisir ?" \
--column="" \
--column="Couleur" \
--print-column="2" \
FALSE "Rouge" \
FALSE "Verte" \
FALSE "Bleue"`
ANNULER
if [ $choix = "Rouge" ]
then
ROUGE
elif [ $choix = "Verte" ]
then
VERTE
elif [ $choix = "Bleue" ]
then
BLEUE
else [ -z $choix ]
NUL
fi
Dernière modification par Orion79 (Le 03/07/2011, à 08:07)
#2 Le 12/06/2011, à 22:43
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
tu peux jeter un oeil →→→ ICI ←←← . Il y a un exemple qui repose la meme question quaznd un choix ne correspond à aucun des choix disponibles...
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#3 Le 12/06/2011, à 22:47
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Merci
je vais faire un tour sur ton lien et je te tiens au courant...
A+
#4 Le 12/06/2011, à 23:04
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Bon j'ai pas tout bien compris mais ça m'a donné une piste que je tente de simplifier :
NB : j'ai rajouter la fonction CHOIX
#!/bin/bash
set -xv
############
# FONCTION #
############
##########################################################################
function ANNULER()
{
if [ "$?" != 0 ]
then
zenity --info --text "Au revoir"
exit
fi
}
##########################################################################
function ROUGE()
{
zenity --info --text "Vous avez choisi la couleur rouge"
}
##########################################################################
function VERTE()
{
zenity --info --text "Vous avez choisi la couleur verte"
}
##########################################################################
function BLEUE()
{
zenity --info --text "Vous avez choisi la couleur bleue"
}
##########################################################################
function NUL()
{
zenity --info --text "Vous avez choisi aucune couleur recommencer !"
}
##########################################################################
function CHOIX()
{
choix=`zenity --list \
--radiolist \
--text="Quelle couleur voulez-vous choisir ?" \
--column="" \
--column="Couleur" \
--print-column="2" \
FALSE "Rouge" \
FALSE "Verte" \
FALSE "Bleue"`
ANNULER
if [ $choix = "Rouge" ]
then
ROUGE
elif [ $choix = "Verte" ]
then
VERTE
elif [ $choix = "Bleue" ]
then
BLEUE
else [ -z $choix ]
NUL
if [ "$?" = 0 ]
then
CHOIX
fi
fi
}
##########################################################################
#############
# PROGRAMME #
#############
choix=`zenity --list \
--radiolist \
--text="Quelle couleur voulez-vous choisir ?" \
--column="" \
--column="Couleur" \
--print-column="2" \
FALSE "Rouge" \
FALSE "Verte" \
FALSE "Bleue"`
ANNULER
if [ $choix = "Rouge" ]
then
ROUGE
elif [ $choix = "Verte" ]
then
VERTE
elif [ $choix = "Bleue" ]
then
BLEUE
else [ -z $choix ]
NUL
if [ "$?" = 0 ]
then
CHOIX
fi
fi
Dernière modification par Orion79 (Le 12/06/2011, à 23:19)
#5 Le 13/06/2011, à 02:27
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
J'ai passé deux heures pour parvenir à implémenter la fonction annuler !!! Je te déteste ( humour ) mais j'ai beaucoup apris = )
#!/bin/sh
set -xv
# Fonctions
ANNULER() {
if [ $? -eq 1 ] ; then
zenity --info --text "Au revoir ! " ; exit 1
fi
}
INFO() {
zenity --info --text " Vous avez choisi la couleur $choix"
}
CHOIX() {
choix=`zenity --list \
--radiolist \
--text="Quelle couleur voulez-vous choisir ?" \
--column="" \
--column="Couleur" \
--print-column="2" \
FALSE "rouge" \
FALSE "vert" \
FALSE "bleu"`
ANNULER
while [ -z $choix ]
do
NUL ; CHOIX
done
}
NUL() {
zenity --info --text "Vous avez choisi aucune couleur recommencer !"
}
### Corps du script
CHOIX
INFO
J'ai plus bien les trous en face des yeux mais je crois qu'il tourne parfaitement ce script... Dis moi ce sue tu en penses... = þ
Dernière modification par bishop.sad.clown (Le 13/06/2011, à 02:44)
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#6 Le 13/06/2011, à 08:35
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Dis moi ce sue tu en penses... = þ
C'est super tu as réussi a raccourcir le script et en plus facile à comprendre ! :):):)
Cependant les fonctions ROUGE, VERTE et BLEUE il faut que je les conserve car ici j'ai simplifié le script pour la compréhension, mais ces couleurs auront comme fonction réelle (une fois le script modifié) une fonction pour ripper les DVD).
Par exemple ROUGE de viendra "Copier le DVD au format Vob"
function VOB()
{
vobcopy -m
}
Sur le principe cela donnera ça :
#!/bin/bash
set -xv
############
# FONCTION #
############
##########################################################################
ANNULER()
{
if [ $? -eq 1 ]
then
zenity --info --text "Au revoir ! "
exit 1
fi
}
##########################################################################
VOB() #### Anciennement fonction ROUGE ####
{
zenity --info --text "Vous avez choisi de copier le DVD ?"
if [ "$?" = 0 ]
then
vobcopy -m
else
CHOIX
fi
}
##########################################################################
VERTE()
{
zenity --info --text "Vous avez choisi la couleur verte"
}
##########################################################################
BLEUE()
{
zenity --info --text "Vous avez choisi la couleur bleue"
}
##########################################################################
NUL()
{
zenity --info --text "Vous avez choisi aucune couleur recommencer !"
}
##########################################################################
CHOIX()
{
choix=`zenity --list \
--radiolist \
--text="Quelle couleur voulez-vous choisir ?" \
--column="" \
--column="Choix" \
--column="Option" \
--print-column="2" \
FALSE "1" "Copier le DVD au format Vob" \
FALSE "2" "Verte" \
FALSE "3" "Bleue" `
ANNULER
if [ $choix = "1" ]
then
VOB
elif [ $choix = "2" ]
then
VERTE
elif [ $choix = "3" ]
then
BLEUE
fi
while [ -z $choix ]
do
NUL ; CHOIX
done
}
##########################################################################
#############
# Corps du script #
#############
CHOIX
Dernière modification par Orion79 (Le 13/06/2011, à 08:46)
#7 Le 13/06/2011, à 09:01
- michcauch
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Bonjour,
je n'ai aucune idée mais je pense qu'ici tu trouveras des idées.
Cordialement
Michel
___
Ubuntu 24.04.1 sur Clevo N141WU
Hors ligne
#8 Le 13/06/2011, à 10:53
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Je me suis douté que tu en avais besoin j'avais préparé ça dans ma tite musette ^_^
#!/bin/sh
set -xv
# Fonctions
ROUGE () {
zenity --info --text "Rouge sélectionné !"
}
VERT () {
zenity --info --text "Vert sélectionné !"
}
BLEU () {
zenity --info --text "Bleu sélectionné !"
}
ANNULER() {
if [ $? -eq 1 ] ; then
zenity --info --text "Au revoir ! " ; exit 1
fi
}
INFO() {
zenity --info --text " Vous avez choisi $choix"
}
CHOIX() {
choix=`zenity --list \
--radiolist \
--text="Quelle couleur voulez-vous choisir ?" \
--column="" \
--column="Couleur" \
--print-column="2" \
FALSE "rouge" \
FALSE "vert" \
FALSE "bleu"`
ANNULER
while [ -z $choix ]
do
NUL ; CHOIX
done
case $choix in
rouge) ROUGE ;;
vert) VERT ;;
bleu) BLEU ;;
*) exit 1
esac
}
NUL() {
zenity --info --text "Vous avez choisi aucune couleur recommencer !"
}
### Corps du script
CHOIX
Et comme ca ?
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#9 Le 13/06/2011, à 14:05
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Et comme ca ?
Trop fort ! tu es mon mentor !
#10 Le 13/06/2011, à 14:06
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Nan... Nous sommes juste chanceux = D = þ
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#11 Le 13/06/2011, à 17:09
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Si tu veux, j'aurai encore besoin d'un coup de pouce pour ça :
#!/bin/bash
titre=`lsdvd /dev/dvd | grep ^"Longest track" | awk '{print $3}'`
idaid=`mplayer -identify -vc null -ac null -frames 0 dvd://$titre | grep "ID_AID"`
zenity --list \
--radiolist \
--text="Quel langue voulez-vous choisir ?" \
--column="" \
--column="Choix" \
--column="Option" \
--print-column="2" \
$idaid
J'aimerai qu'on puisse choisir la langue en cochant par exemple français.
(2 heures que j'essaie, pb au niveau des colonnes et aussi un pb au niveau du idaid je pensai applique un awk print mais je maîtrise pas bien cette commande.)
Merci d'aider un noob du script bash mais qui aime appendre de ces erreurs !
Dernière modification par Orion79 (Le 13/06/2011, à 17:17)
#12 Le 13/06/2011, à 17:19
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
bon là faut me laisser un peu de temps pck depuis que j'ai ce laptop j'ai plus de dvd sous la main... J'ai pas de lecteur sur cet asus ^_^ ... je cherche un .iso à DL quelque part et je te tiens au courant... Si y a des volontaires n'hésitez pas à vous manifester hein !!! = O = D = þ
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#13 Le 13/06/2011, à 17:24
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Prend tout ton temps, seul le résultat compte !
#14 Le 13/06/2011, à 17:28
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
En farfouillant un peu vite fait je suis tombé sur →→→ CETTE PAGE ←←← ...
Ca serait pas plus aisé à scripter avec cette méthode ? Ça permettrait de se passer de lsdvd et de ne pas sortir du duo mplayer/mencoder... C'est juste une idée comme ça j'ai encoer rien testé, je n'ai pas encore d' .iso sous la main pour comparer... T'en penses quoi ?
EDIT: Si t'as une iso en stock et que tu peux la poser sur un ftp par exemple ou un autre j'suis preneur... Ça nous ferait gagné du temps ^_^
Dernière modification par bishop.sad.clown (Le 13/06/2011, à 18:03)
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#15 Le 13/06/2011, à 18:26
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
EDIT: Si t'as une iso en stock et que tu peux la poser sur un ftp par exemple ou un autre j'suis preneur... Ça nous ferait gagné du temps ^_^
Avec plaisir mais je n'ai encore jamais fais ce genre de manip je me documente et je fais le nécessaire pour de faire parvenir une iso avec plusieurs langues !
A+
#16 Le 13/06/2011, à 19:55
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Chayé j'en ai récupéré une ^_^
Et non en fait t'as raison ^_^ lsdvd ca le fait très bien = D
Dernière modification par bishop.sad.clown (Le 13/06/2011, à 20:04)
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#17 Le 13/06/2011, à 20:43
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Peut-être avec la liste déroulante ça serai plus simple, le but est d'utilisé le moins possible le clavier sinon il y avait cette possibilité mais c'est pas top :
#! /bin/bash
titre=`lsdvd /dev/dvd | grep ^"Longest track" | awk '{print $3}'`
idaid=`mplayer -identify -vc null -ac null -frames 0 dvd://$titre | grep "ID_AID"`
zenity --info --text "$idaid" &
atrack=`zenity --entry --title="" --text="Entrer la piste audio \n ex 128" 2>&1`
Dernière modification par Orion79 (Le 13/06/2011, à 20:45)
#18 Le 13/06/2011, à 20:57
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Bon je croit que je suis sur la bonne voie :
#! /bin/bash
set -xv #Option de débug#
titre=`lsdvd /dev/dvd | grep ^"Longest track" | awk '{print $3}'`
idaid=`mplayer -identify -vc null -ac null -frames 0 dvd://$titre | grep "ID_AID"`
langue=`zenity --list \
--print-column="1" \
--column="Langue" \
$idaid`
mplayer -dumpstream dvd://$titre -aid $langue -dumpfile video.mpg
Maintenant il faut trouver comment isolé le numéro correspondant à la langue
Dernière modification par Orion79 (Le 13/06/2011, à 21:09)
#19 Le 13/06/2011, à 21:15
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
pt-etre comme ça:
echo $idaid | awk -F\_ '{print $3}'
EDIT : Ah oui mais non ! je viens de comprendre la difficulté du truc ! = D
Et j'ai eune question bête:
S'il y a plus de deux langues dispos sur le dvd... il les affiche toutes le script en l'état ?
Dernière modification par bishop.sad.clown (Le 13/06/2011, à 21:19)
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#20 Le 13/06/2011, à 21:27
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Je suis pas sûr de te comprendre ?
Voici ce que me retourne le script du post #18
Ta commande du post#19 fonctionne, mais c'est bête je n'arrive pas à la déchiffrer.
Dernière modification par Orion79 (Le 13/06/2011, à 21:29)
#21 Le 13/06/2011, à 21:50
- compte supprimé
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Bon je comprend mieux ta commande suite à la lecture de ce document : Commande awk
Dernière modification par Orion79 (Le 13/06/2011, à 21:50)
#22 Le 13/06/2011, à 22:03
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
En s'inspirant de ce matin:
#! /bin/bash
set -xv #Option de débug#
titre=`lsdvd /dev/dvd | grep ^"Longest track" | awk '{print $3}'`
idaid=`mplayer -identify -vc null -ac null -frames 0 dvd://$titre | grep "ID_AID"`
CHOIX=langue=`zenity --list \
--print-column="1" \
--column="Langue" \
$idaid`
L_DVD=`echo $CHOIX | awk -F\_ '{print $3}'`
zenity --info --text " $L_DVD !"
echo $L_DVD
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#23 Le 13/06/2011, à 22:22
- FRUiT
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
L_DVD=`echo $CHOIX | awk -F\_ '{print $3}'`
Petites remarques en passant,
Il vaut mieux ne pas utiliser l'option -F de awk :
The -F option is not necessary given the command line variable assignment fea‐
ture; it remains only for backwards compatibility.
Syntactically invalid single character programs tend to overflow the parse
stack, generating a rather unhelpful message. Such programs are surprisingly
difficult to diagnose in the completely general case, and the effort to do so
really is not worth it.
Il vaut mieux lui préférer la variable FS.
Aussi, c'est mieux d'utiliser $(commande) pour la substitution, qui est bien plus lisible, et plus facilement imbricable.
Et pourquoi pas utiliser un here-string plutôt que echo,
Soit :
L_DVD="$(awk 'BEGIN { FS="_" } { print $3 }' <<<$CHOIX)"
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#24 Le 13/06/2011, à 22:39
- bishop.sad.clown
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
Et pourquoi pas utiliser un here-string plutôt que echo,
Dans mon cas: Parceque j'en découvre l'existence ! = D
Bon à savoir aussi pour awk et l'option -FS ... ^_^ ( et oui j'en suis encore à la commande cut )
EDIT: Par contre sur mon système ton here-string me retourne:
L_DVD="$(awk 'BEGIN { FS="_" } { print $3 }' <<<$CHOIX)"
./d_rip.sh: 16: Syntax error: redirection unexpected
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#25 Le 13/06/2011, à 22:46
- aduxas
Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD
man awk a écrit :Syntactically invalid single character programs tend to overflow the parse stack, generating a rather unhelpful message. Such programs are surprisingly difficult to diagnose in the completely general case, and the effort to do so really is not worth it.
Bof, j'utilise -F assez régulièrement, et je n'ai jamais eu de pépins. D'ailleurs, je n'ai aucune idée ce que c'est, un "single character program", valable ou pas.
BTW -F_ fait l'affaire, car _ n'a pas de signification spéciale.
Dernière modification par aduxas (Le 13/06/2011, à 22:46)
Hors ligne