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 22/10/2013, à 15:50

Crestey

[Résolu] Problème de variable sur un script utilisant ripit

Bonjour à tous,

Je rencontre une difficulté avec une variable d'un script.
Je souhaite utiliser ripit pour ripper des CD en ligne de commande.
Mes CD ont un Numéro sur 3 chiffres que j'écris au feutre indélébile dessus.

Je voudrais qu'en un commande, le CD se rippe sous :
/mnt/...Chemin.../CD/{numéro sur 3 chiffres} - {artist} - {album}/LesPistes.mp3

J'arrive à faire 
/mnt/...Chemin.../CD/{numéro sur 3 chiffres} / {artist} - {album}/LesPistes.mp3
avec la ligne suivante que je met dans un script

ripit --outputdir /mnt/nas1/zRecup/Musique/CD/$1 --dirtemplate '"$artist - $album"' -c 1 --oggencopt "--managed -b 192 -M 224 -m 96" --quality 5   --playlist 0 --eject --save --nointeraction

Mais je voudrais que les pistes soient sous
{numéro sur 3 chiffres} - {artist} - {album} et non
{numéro sur 3 chiffres} / {artist} - {album}

Alors j'ai essayé ça (où je rajouterai le $1 plus tard)

toto='"$artist - $album"'
titi="'"$toto"'"
echo $titi
ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate $titi -c 1 --oggencopt "--managed -b 192 -M 224 -m 96" --quality 5   --playlist 0 --eject --save --nointeraction

mais ça ne marche pas. La variable titi contient bien '"$artist - $album"' (c'est à dire guillemet simple,guillemet double,$artist - $album,guillemet double,guillemet simple)
soit, ce qu'il y a dans la commande qui marche. Mais là ça ne marche pas.

Une idée ?

le résultat du lancement du script est là :

crestey@crestey-Pegatron:~$ ./rip 007
'"$artist - $album"'



RipIT version 3.9.0.



Updated the config file!

Process summary:
----------------
CD will be ejected when finished.


-----------------
CDDB and tag Info
-----------------
Artist: Jean-Philippe GOUDE
Album: Ainsi de nous
Category: folk
ID3-Genre: folk ()
Year: 1994
Revision: 0
CDDB id: 9009170c
CD id: 9f092d0c
CD length: 39:11

01: [02:50.08] Sic transit gloria mundi
02: [03:07.63] Spero lucem
03: [03:43.18] Quatre danseries - Haute danse
04: [03:33.47] Quatre danseries - L'échappée
05: [02:48.05] Quatre danseries - La Lurette
06: [03:01.17] Quatre danseries - Se départir
07: [03:49.30] Ainsi de nous - Melancholia
08: [03:00.57] Pastorale
09: [04:04.12] Ainsi de nous - Attente
10: [03:53.57] Une eternelle nuit
11: [03:28.44] POst tenebras
12: [01:49.05] Picarde


Invalid track selection "-"!

crestey@crestey-Pegatron:~$

Dernière modification par Crestey (Le 25/10/2013, à 17:55)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#2 Le 22/10/2013, à 17:12

hcm

Re : [Résolu] Problème de variable sur un script utilisant ripit

Salut Crestey,

Pour nous aider à déboguer ton script place la commande

set -x

juste avant ta commande ripit, et poste nous le résultat.

Ça nous aidera peut être à y voir plus clair.


Ubuntu 22.04.1 LTS - 64 bits / Intel Pentium(R) Dual CPU E2200 @ 2.20GHz × 2 / 2 Go RAM / 1,1 To DD / Carte Graphique Intel G33

Hors ligne

#3 Le 22/10/2013, à 17:35

Crestey

Re : [Résolu] Problème de variable sur un script utilisant ripit

Salut hmc
Voilà le résultat:

crestey@crestey-Pegatron:~$ ./rip 007
++ toto='"$artist - $album"'
++ titi=''\''"$artist - $album"'\'''
++ echo ''\''"$artist' - '$album"'\'''
'"$artist - $album"'
++ ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate ''\''"$artist' - '$album"'\''' -c 1 --oggencopt '--managed -b 192 -M 224 -m 96' --quality 5 --playlist 0 --eject --save --nointeraction



RipIT version 3.9.0.



Updated the config file!

Process summary:
----------------
CD will be ejected when finished.


-----------------
CDDB and tag Info
-----------------
Artist: Jean-Philippe GOUDE
Album: Ainsi de nous
Category: folk
ID3-Genre: folk ()
Year: 1994
Revision: 0
CDDB id: 9009170c
CD id: 9f092d0c
CD length: 39:11

01: [02:50.08] Sic transit gloria mundi
02: [03:07.63] Spero lucem
03: [03:43.18] Quatre danseries - Haute danse
04: [03:33.47] Quatre danseries - L'échappée
05: [02:48.05] Quatre danseries - La Lurette
06: [03:01.17] Quatre danseries - Se départir
07: [03:49.30] Ainsi de nous - Melancholia
08: [03:00.57] Pastorale
09: [04:04.12] Ainsi de nous - Attente
10: [03:53.57] Une eternelle nuit
11: [03:28.44] POst tenebras
12: [01:49.05] Picarde


Invalid track selection "-"!

crestey@crestey-Pegatron:~$

Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#4 Le 22/10/2013, à 19:10

Crestey

Re : [Résolu] Problème de variable sur un script utilisant ripit

J'ai trouvé une solution:

set -x
toto='"'$1'-Artist{$artist}-Album{$album}"'
echo $toto
ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate $toto -c 1 --oggencopt "--managed -b 192 -M 224 -m 96" --quality 5   --playlist 0 --eject --save --nointeraction

ce qui donne ce résultat :

crestey@crestey-Pegatron:~$ ./rip 007
++ toto='"007-Artist{$artist}-Album{$album}"'
++ echo '"007-Artist{$artist}-Album{$album}"'
"007-Artist{$artist}-Album{$album}"
++ ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate '"007-Artist{$artist}-Album{$album}"' -c 1 --oggencopt '--managed -b 192 -M 224 -m 96' --quality 5 --playlist 0 --eject --save --nointeraction



RipIT version 3.9.0.



Updated the config file!

Process summary:
----------------
CD will be ejected when finished.


-----------------
CDDB and tag Info
-----------------
Artist: Jean-Philippe GOUDE
Album: Ainsi de nous
Category: folk
ID3-Genre: folk ()
Year: 1994
Revision: 0
CDDB id: 9009170c
CD id: 9f092d0c
CD length: 39:11

01: [02:50.08] Sic transit gloria mundi
02: [03:07.63] Spero lucem
03: [03:43.18] Quatre danseries - Haute danse
04: [03:33.47] Quatre danseries - L'échappée
05: [02:48.05] Quatre danseries - La Lurette
06: [03:01.17] Quatre danseries - Se départir
07: [03:49.30] Ainsi de nous - Melancholia
08: [03:00.57] Pastorale
09: [04:04.12] Ainsi de nous - Attente
10: [03:53.57] Une eternelle nuit
11: [03:28.44] POst tenebras
12: [01:49.05] Picarde


Tracks 1 2 3 4 5 6 7 8 9 10 11 12 will be ripped.


18:56:31: Ripping "01 Sic transit gloria mundi"...
cdparanoia III release 10.2 (September 11, 2008)

Ripping from sector       0 (track  1 [0:00.00])
	  to sector   12757 (track  1 [2:50.07])

outputting to /mnt/nas1/zRecup/Musique/CD/007-Artist{Jean-Philippe GOUDE}-Album{Ainsi de nous}/01 Sic transit gloria mundi.rip

 (== PROGRESS == [        +                     | 012757 00 ] == :^D * ==)   

Done.

et donne cette copie d'écran

Je n'ai pas trouvé comment introduire un espace par exemple avant artist. ça me fait une message d'erreur.
Si quelqu'un sait, je suis preneur.
Merci et A+

Dernière modification par Crestey (Le 22/10/2013, à 19:11)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#5 Le 22/10/2013, à 19:37

hcm

Re : [Résolu] Problème de variable sur un script utilisant ripit

Je n'ai pas trouvé comment introduire un espace par exemple avant artist. ça me fait une message d'erreur.

Quelle syntaxe as tu utilisée pour introduire ton espace?
Peux tu nous donner le résultat de l'exécution de ton script avec cette syntaxe (toujours avec le set -x) pour qu'on puisse connaître le message d'erreur ?


Ubuntu 22.04.1 LTS - 64 bits / Intel Pentium(R) Dual CPU E2200 @ 2.20GHz × 2 / 2 Go RAM / 1,1 To DD / Carte Graphique Intel G33

Hors ligne

#6 Le 23/10/2013, à 21:48

Crestey

Re : [Résolu] Problème de variable sur un script utilisant ripit

Bonsoir hcm

J'ai mis 2 espaces autour du tiret, entre Artist{$artist} et Album{$album} comme ça:

set -x
toto='"'$1'-Artist{$artist} - Album{$album}"'
echo $toto
ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate $toto -c 1 --oggencopt "--managed -b 192 -M 224 -m 96" --quality 5   --playlist 0 --eject --save --nointeraction

Et voici la sortie qui merdoit:

crestey@crestey-Pegatron:~$ gedit rip
crestey@crestey-Pegatron:~$ ./rip
++ toto='"-Artist{$artist} - Album{$album}"'
++ echo '"-Artist{$artist}' - 'Album{$album}"'
"-Artist{$artist} - Album{$album}"
++ ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate '"-Artist{$artist}' - 'Album{$album}"' -c 1 --oggencopt '--managed -b 192 -M 224 -m 96' --quality 5 --playlist 0 --eject --save --nointeraction



RipIT version 3.9.0.



Updated the config file!

Process summary:
----------------
CD will be ejected when finished.


Please insert an audio CD!


-----------------
CDDB and tag Info
-----------------
Artist: Neil Young
Album: Harvest
Category: blues
ID3-Genre: none
Revision: 4
CDDB id: 8e08c20a
CD id: 7b08d00a
CD length: 37:38

01: [04:34.74] Out on the weekend
02: [03:10.30] 
03: [04:03.39] 
04: [03:09.09] 
05: [03:23.33] 
06: [03:23.70] 
07: [03:01.27] 
08: [04:04.12] 
09: [02:05.19] 
10: [06:40.23] 


Invalid track selection "-"!

crestey@crestey-Pegatron:~$

Dernière modification par Crestey (Le 23/10/2013, à 21:49)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#7 Le 24/10/2013, à 18:43

hcm

Re : [Résolu] Problème de variable sur un script utilisant ripit

Salut,

N'ayant pas l'utilitaire ripit, j'ai du mal à te donner une réponse définitive.
Je pense que le problème pourrait venir des simples quote ' autour du signe -.
Il faudrait tester (à la main) si la syntaxe passe mieux en écrivant:

ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate '"-Artist{$artist} - Album{$album}"' -c 1 --oggencopt '--managed -b 192 -M 224 -m 96' --quality 5 --playlist 0 --eject --save --nointeraction

Voir même

ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate "-Artist{$artist} - Album{$album}" -c 1 --oggencopt '--managed -b 192 -M 224 -m 96' --quality 5 --playlist 0 --eject --save --nointeraction

Et faire l'affectation de toto en conséquence.

Au fait, question importante, quel type de shell utilises tu (sh, bash, ...) ?

Dernière modification par hcm (Le 24/10/2013, à 20:09)


Ubuntu 22.04.1 LTS - 64 bits / Intel Pentium(R) Dual CPU E2200 @ 2.20GHz × 2 / 2 Go RAM / 1,1 To DD / Carte Graphique Intel G33

Hors ligne

#8 Le 24/10/2013, à 19:16

Crestey

Re : [Résolu] Problème de variable sur un script utilisant ripit

Bonsoir hcm,
Le problème est indépendant de ripit.

Si tu lance le script suivant

set -x
toto='"'$1'Artist{$artist} Album{$album}"'
echo $toto

et que tu l'exécutes, tu obtiens ça :

crestey@crestey-Pegatron:~$ ./rip 007
++ toto='"007Artist{$artist} Album{$album}"'
++ echo '"007Artist{$artist}' 'Album{$album}"'
"007Artist{$artist} Album{$album}"
crestey@crestey-Pegatron:~$

On voit (sur la ligne ++ echo ...) que la variable toto a deux simples guillemets qui se sont rajoutés autour de son espace au centre, et je penses que c'est ça qui fait merder la commande ripit.
Car si je mets n'importe quoi d'autre qu'un espace, ça marche.

Dernière modification par Crestey (Le 24/10/2013, à 19:16)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#9 Le 24/10/2013, à 20:18

hcm

Re : [Résolu] Problème de variable sur un script utilisant ripit

Salut,

J'ai l'impression que tu utilises un shell de type bash.
Je ne connais pas bien ce type de shell mais si tu peux passer en sh le problème devrait disparaître.

Pour cela, il te faut placer en première ligne de ton script:

#!/bin/sh

en modifiant la syntaxe d'affectation de la variable toto par

toto="$1 Artist{$artist} - Album{$album}"

Ce qui donne, au final

#!/bin/sh

set -x
toto="$1 Artist{$artist} - Album{$album}"
echo $toto

Et tu auras alors avoir le résultat suivant:

./essai.sh 001
+ toto=001 Artist{} - Album{}
+ echo 001 Artist{} - Album{}
001 Artist{} - Album{}

Si tu dois absolument rester en bash, je pourrai essayer de trouver la syntaxe qui va bien, mais pour le moment je ne la connais pas ...

Dernière modification par hcm (Le 24/10/2013, à 20:20)


Ubuntu 22.04.1 LTS - 64 bits / Intel Pentium(R) Dual CPU E2200 @ 2.20GHz × 2 / 2 Go RAM / 1,1 To DD / Carte Graphique Intel G33

Hors ligne

#10 Le 24/10/2013, à 22:16

Crestey

Re : [Résolu] Problème de variable sur un script utilisant ripit

effectivement, on n'est pas loin.
Mais la commande ripit plante encore car la variable toto devrait être non pas ça :

+ toto="$1 Artist{$artist} - Album{$album}"

mais ça

+ toto='"$1 Artist{$artist} - Album{$album}"'

Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#11 Le 24/10/2013, à 23:04

Crestey

Re : [Résolu] Problème de variable sur un script utilisant ripit

Alors là, j'y comprends rien !
J'ai trouvé pour avoir

+ toto='"$1 Artist{$artist} - Album{$album}"'

il suffit de rajouter antislash devant '
Ce qui donne :

#!/bin/sh
set -x
toto=\''"'$1'Artist{$artist} Album{$album}"'\'
echo $toto

Et le résultat :

crestey@crestey-Pegatron:~$ ./rip 007
+ toto='"007Artist{$artist} Album{$album}"'
+ echo '"007Artist{$artist} Album{$album}"'
'"007Artist{$artist} Album{$album}"'
crestey@crestey-Pegatron:~$

Donc, ce qu'il faut mettre dans la commande ripit.
Mais en lançant ripit, la ligne de commande est exactement ce qu'il faut, mais ça plante quand même.

crestey@crestey-Pegatron:~$ ./rip 007
+ toto='"007Artist{$artist} Album{$album}"'
+ echo '"007Artist{$artist} Album{$album}"'
'"007Artist{$artist} Album{$album}"'
+ ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate '"007Artist{$artist} Album{$album}"' -c 1 --oggencopt --managed -b 192 -M 224 -m 96 --quality 5 --playlist 0 --eject --save --nointeraction



RipIT version 3.9.0.



Updated the config file!

Process summary:
----------------
CD will be ejected when finished.

No connection to internet? The error message is:
cannot connect to cddb db:
96.freedb.org:8880 [Argument invalide] at
/usr/share/perl5/CDDB_get.pm line 309.


No CDDB info chosen or found for this CD

-----------------
CDDB and tag Info
-----------------
Artist: Unknown Artist
Album: Unknown Album
Category: 
ID3-Genre: none
Revision: 0
CD id: 8b09f10b
CD length: 42:27

01: [02:58.52] Track 01
02: [03:15.55] Track 02
03: [03:52.15] Track 03
04: [04:58.38] Track 04
05: [04:32.67] Track 05
06: [02:25.58] Track 06
07: [03:33.65] Track 07
08: [03:54.57] Track 08
09: [04:15.40] Track 09
10: [03:33.33] Track 10
11: [05:03.57] Track 11


Track selection invalid!
crestey@crestey-Pegatron:~$

Et si je fait un copier/coller depuis le terminal de

ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate '"007Artist{$artist} Album{$album}"' -c 1 --oggencopt --managed -b 192 -M 224 -m 96 --quality 5 --playlist 0 --eject --save --nointeraction

là ça ne plante pas !
En gros la ligne de commande générée avec la variable toto ne marche pas depuis le script, mais marche en "direct".

Dernière modification par Crestey (Le 25/10/2013, à 07:06)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#12 Le 25/10/2013, à 03:59

pingouinux

Re : [Résolu] Problème de variable sur un script utilisant ripit

Bonjour,
Tu peux essayer ceci :

toto=\"$1'Artist{$artist} Album{$album}'\"
ripit ..... "$toto" .....

Hors ligne

#13 Le 25/10/2013, à 08:15

Crestey

Re : [Résolu] Problème de variable sur un script utilisant ripit

Bonjour pingouinux,
Vu l'heure de ta réponse, on ne sait pas trop dire si tu es du soir ou du matin wink. Mais c'est une bonne heure car ça marche !
Voilà le script (j'ai viré la variable toto):

#!/bin/sh
set -x
ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate \"$1' Artist{$artist} Album{$album}'\" -c 1 --oggencopt "--managed -b 192 -M 224 -m 96" --quality 5 --playlist 0 --eject --save --nointeraction

Voilà le résultat:

crestey@crestey-Pegatron:~$ ./rip 007
+ ripit --outputdir /mnt/nas1/zRecup/Musique/CD --dirtemplate "007 Artist{$artist} Album{$album}" -c 1 --oggencopt --managed -b 192 -M 224 -m 96 --quality 5 --playlist 0 --eject --save --nointeraction



RipIT version 3.9.0.



Updated the config file!

Process summary:
----------------
CD will be ejected when finished.


-----------------
CDDB and tag Info
-----------------
Artist: Jean-Philippe GOUDE
Album: Ainsi de nous
Category: folk
ID3-Genre: folk ()
Year: 1994
Revision: 0
CDDB id: 9009170c
CD id: 9f092d0c
CD length: 39:11

01: [02:50.08] Sic transit gloria mundi
02: [03:07.63] Spero lucem
03: [03:43.18] Quatre danseries - Haute danse
04: [03:33.47] Quatre danseries - L'échappée
05: [02:48.05] Quatre danseries - La Lurette
06: [03:01.17] Quatre danseries - Se départir
07: [03:49.30] Ainsi de nous - Melancholia
08: [03:00.57] Pastorale
09: [04:04.12] Ainsi de nous - Attente
10: [03:53.57] Une eternelle nuit
11: [03:28.44] POst tenebras
12: [01:49.05] Picarde


Tracks 1 2 3 4 5 6 7 8 9 10 11 12 will be ripped.


08:04:56: Ripping "01 Sic transit gloria mundi"...
cdparanoia III release 10.2 (September 11, 2008)

Ripping from sector       0 (track  1 [0:00.00])
	  to sector   12757 (track  1 [2:50.07])

outputting to /mnt/nas1/zRecup/Musique/CD/007 Artist{Jean-Philippe GOUDE} Album{Ainsi de nous} 1/01 Sic transit gloria mundi.rip

 (== PROGRESS == [        +                     | 012757 00 ] == :^D * ==)   

Done.



08:05:51: Ripping "02 Spero lucem"...
cdparanoia III release 10.2 (September 11, 2008)

Mise en route du mécanisme de gestion du débit
Défini les options du mode restrictif de haute qualité
Ripping from sector   12758 (track  2 [0:00.00])
	  to sector   26845 (track  2 [3:07.62])

outputting to /mnt/nas1/zRecup/Musique/CD/007 Artist{Jean-Philippe GOUDE} Album{Ainsi de nous} 1/02 Spero lucem.rip

 (== PROGRESS == [     >                        | 013925 00 ] == :-) 0 ==)   ^Z
[3]+  Stoppé                 ./rip 007
crestey@crestey-Pegatron:~$ 

Donc exactement ce que je cherchais.
En fait dans la ligne de commande, je peux mettre des espaces n'importe où entre les simple guillemets. (ici entre $1 et entre artist et album)
Merci à tous les deux et A+ smile

P.S. Je précise que j'ai eu un emmerdement avec ripit qui ne voulait plus reconnaître les noms d'artiste et d'album
Il rippait bien. Mais avec en sortie des noms "unknown artist et unknown album"
J'ai viré le dossier ~./ripit et tout est rentré dans l'ordre.
Sans doute mes nombreuses manips ont involontairement configuré quelque chose d'indésirable dans ~./ripit/config.


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#14 Le 25/10/2013, à 14:37

reivillo

Re : [Résolu] Problème de variable sur un script utilisant ripit

Bonjour Crestey.

Intéressant ton sujet.

Tu devrais modifier ton titre en ( Problème de variable sur un script dans ripit. )
Si quelqu'un a le même soucis, il trouvera plus vite la solution, grâce au mot ripit.

Ce n'est qu'une suggestion.

Reivillo.


Version LinuxMint 13 (maya-mate(32-bit)) LTS Noyau 3.2.0-39-generic (06-04-2013)
Sur http://www.linuxmint.com/edition.php?id=103

Hors ligne

#15 Le 25/10/2013, à 18:02

Crestey

Re : [Résolu] Problème de variable sur un script utilisant ripit

Bonjour Reivillo
Voilà c'est fait .
Pour info, et toujours dans le but de classer la musique, (mais cette fois de CD déjà rippés), je n'arrive pas à extraire le tag  albumartist en ligne de commande.
En fait ripit utilise le tag albumartist pour son champ artist, et son champ titre contient en fait les 2 tags suivants sous cette forme : "artist - titre".
J'ai initié ce fil où le sujet cette fois est plus parlant wink.
Mais j'ai fouillé partout sans succès, et je n'ai pas eu de réponse non plus à mon fil.
Si t'as une idée, je suis preneur.
A+

Dernière modification par Crestey (Le 25/10/2013, à 18:06)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#16 Le 25/10/2013, à 18:30

reivillo

Re : [Résolu] Problème de variable sur un script utilisant ripit

Re.

Je vais Ripper un CD, avec ripit pour voir.


Version LinuxMint 13 (maya-mate(32-bit)) LTS Noyau 3.2.0-39-generic (06-04-2013)
Sur http://www.linuxmint.com/edition.php?id=103

Hors ligne