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 12/06/2011, à 23: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, à 09:07)

#2 Le 12/06/2011, à 23: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, à 23: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 13/06/2011, à 00: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 13/06/2011, à 00:19)

#5 Le 13/06/2011, à 03: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, à 03: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, à 09:35

compte supprimé

Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD

bishop.sad.clown a écrit :

Dis moi ce sue tu en penses... = þ

C'est super tu as réussi a raccourcir le script et en plus facile à comprendre ! smile:):):)

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, à 09:46)

#7 Le 13/06/2011, à 10: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 22.04 sur Clevo N141WU

Hors ligne

#8 Le 13/06/2011, à 11: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, à 15:05

compte supprimé

Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD

bishop.sad.clown a écrit :

Et comme ca ?

Trop fort ! tu es mon mentor ! smile

#10 Le 13/06/2011, à 15: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, à 18: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 ! roll

Dernière modification par Orion79 (Le 13/06/2011, à 18:17)

#12 Le 13/06/2011, à 18: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, à 18: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 ! roll

#14 Le 13/06/2011, à 18: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, à 19: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, à 19:26

compte supprimé

Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD

bishop.sad.clown a écrit :

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, à 20: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, à 21: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, à 21: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, à 21:45)

#18 Le 13/06/2011, à 21: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, à 22:09)

#19 Le 13/06/2011, à 22: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, à 22: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, à 22: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

1307996743.png

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, à 22:29)

#21 Le 13/06/2011, à 22: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, à 22:50)

#22 Le 13/06/2011, à 23: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, à 23:22

FRUiT

Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD

bishop.sad.clown a écrit :
L_DVD=`echo $CHOIX | awk -F\_ '{print $3}'`

Petites remarques en passant,

Il vaut mieux ne pas utiliser l'option -F de awk :

man awk a écrit :

       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, à 23:39

bishop.sad.clown

Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD

FRUiT a écrit :

  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, à 23:46

aduxas

Re : [Résolu] Noob en difficulté pour créer un script pour ripper DVD

FRUiT a écrit :
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, à 23:46)

Hors ligne