#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 . 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+
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 .
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