J'ai le script ci dessous, qui, quand je l'execute, me renvoie les
erreurs:
ERROR: Failed to open input file: No such file or directory
ERROR: Cannot open input file " --downmix --resample 5512 -q 1 -o /home/mihamina/little/kar3/aina_pazzapa/aina_pazzapa_never_change.ogg - ": No such file or directory
ERROR: Cannot open input file " --downmix --resample 5512 -q 1 -o /home/mihamina/little/kar3/Aline_raelisoa/125_aline_raelisoa.ogg - ": No such file or directory
Le problème c'est que j'ai l'affectation de variable :
et le shell tente d'executer la chaine de caractère, en remplaçant
NEWNAME par le path du fichier.
le vrai problème c'est qu'il tente d'éxécuter ce qu'il y a entre
guillemets. Pourquoi?
Voici le script
#!/bin/zsh
BASEP=${HOME}/music/
TARGETP=${HOME}/little/
mkdir -pv $TARGETP
ENCODER=oggenc
DECODER=oggdec
DECODER_OPTIONS=" -o - "
for FICHIER in ${BASEP}**/*.ogg(.ND); do
{
cd $FICHIER:h
NEWNAME=`print $FICHIER | sed 's/music/little/g'`
mkdir -pv $NEWNAME:h
ENCODER_OPTIONS=" --downmix --resample 5512 -q 1 -o ${NEWNAME} - "
$DECODER $DECODER_OPTIONS | $ENCODER $ENCODER_OPTIONS
}
--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
J'ai le script ci dessous, qui, quand je l'execute, me renvoie les erreurs:
ERROR: Failed to open input file: No such file or directory ERROR: Cannot open input file " --downmix --resample 5512 -q 1 -o /home/mihamina/little/kar3/aina_pazzapa/aina_pazzapa_never_change.ogg - ": No such file or directory ERROR: Cannot open input file " --downmix --resample 5512 -q 1 -o /home/mihamina/little/kar3/Aline_raelisoa/125_aline_raelisoa.ogg - ": No such file or directory
Le problème c'est que j'ai l'affectation de variable :
et le shell tente d'executer la chaine de caractère, en remplaçant NEWNAME par le path du fichier.
Pas compris. Ça a l'air d'être un effet de l'absence de SH_WORD_SPLIT
le vrai problème c'est qu'il tente d'éxécuter ce qu'il y a entre guillemets. Pourquoi?
Le "print|sed" est inutile et aléatoire de toute manière,
Voici le script
#!/bin/zsh
BASEP=${HOME}/music/ TARGETP=${HOME}/little/ mkdir -pv $TARGETP ENCODER=oggenc DECODER=oggdec DECODER_OPTIONS=" -o - " for FICHIER in ${BASEP}**/*.ogg(.ND); do { cd $FICHIER:h NEWNAME=`print $FICHIER | sed 's/music/little/g'` mkdir -pv $NEWNAME:h ENCODER_OPTIONS=" --downmix --resample 5512 -q 1 -o ${NEWNAME} - " $DECODER $DECODER_OPTIONS | $ENCODER $ENCODER_OPTIONS }
Il y aura moins d'erreur de cette manière,
cd $BASEP for FICHIER in **/*.ogg(.ND); do NEWNAME=${TARGETP}/${FICHIER} mkdir -pv $NEWNAME:h ENCODER_OPTIONS=" --downmix --resample 5512 -q 1 -o ${NEWNAME} - (cd $FICHIER:h $DECODER $DECODER_OPTIONS ) | $ENCODER $ENCODER_OPTIONS done
Mais bon, il en reste surement encore. Mieux vaut utiliser "sh" et un bon vieux "find | while read" et virer toutes ces variables constantes et à usage unique.
J'ai le script ci dessous, qui, quand je l'execute, me renvoie les
erreurs:
ERROR: Failed to open input file: No such file or directory
ERROR: Cannot open input file " --downmix --resample 5512 -q 1 -o /home/mihamina/little/kar3/aina_pazzapa/aina_pazzapa_never_change.ogg - ": No such file or directory
ERROR: Cannot open input file " --downmix --resample 5512 -q 1 -o /home/mihamina/little/kar3/Aline_raelisoa/125_aline_raelisoa.ogg - ": No such file or directory
Le problème c'est que j'ai l'affectation de variable :
et le shell tente d'executer la chaine de caractère, en remplaçant
NEWNAME par le path du fichier.
Pas compris. Ça a l'air d'être un effet de l'absence de SH_WORD_SPLIT
le vrai problème c'est qu'il tente d'éxécuter ce qu'il y a entre
guillemets. Pourquoi?
Le "print|sed" est inutile et aléatoire de toute manière,
Voici le script
#!/bin/zsh
BASEP=${HOME}/music/
TARGETP=${HOME}/little/
mkdir -pv $TARGETP
ENCODER=oggenc
DECODER=oggdec
DECODER_OPTIONS=" -o - "
for FICHIER in ${BASEP}**/*.ogg(.ND); do
{
cd $FICHIER:h
NEWNAME=`print $FICHIER | sed 's/music/little/g'`
mkdir -pv $NEWNAME:h
ENCODER_OPTIONS=" --downmix --resample 5512 -q 1 -o ${NEWNAME} - "
$DECODER $DECODER_OPTIONS | $ENCODER $ENCODER_OPTIONS
}
Il y aura moins d'erreur de cette manière,
cd $BASEP
for FICHIER in **/*.ogg(.ND); do
NEWNAME=${TARGETP}/${FICHIER}
mkdir -pv $NEWNAME:h
ENCODER_OPTIONS=" --downmix --resample 5512 -q 1 -o ${NEWNAME} -
(cd $FICHIER:h
$DECODER $DECODER_OPTIONS ) |
$ENCODER $ENCODER_OPTIONS
done
Mais bon, il en reste surement encore.
Mieux vaut utiliser "sh" et un bon vieux "find | while read"
et virer toutes ces variables constantes et à usage unique.
J'ai le script ci dessous, qui, quand je l'execute, me renvoie les erreurs:
ERROR: Failed to open input file: No such file or directory ERROR: Cannot open input file " --downmix --resample 5512 -q 1 -o /home/mihamina/little/kar3/aina_pazzapa/aina_pazzapa_never_change.ogg - ": No such file or directory ERROR: Cannot open input file " --downmix --resample 5512 -q 1 -o /home/mihamina/little/kar3/Aline_raelisoa/125_aline_raelisoa.ogg - ": No such file or directory
Le problème c'est que j'ai l'affectation de variable :
et le shell tente d'executer la chaine de caractère, en remplaçant NEWNAME par le path du fichier.
Pas compris. Ça a l'air d'être un effet de l'absence de SH_WORD_SPLIT
le vrai problème c'est qu'il tente d'éxécuter ce qu'il y a entre guillemets. Pourquoi?
Le "print|sed" est inutile et aléatoire de toute manière,
Voici le script
#!/bin/zsh
BASEP=${HOME}/music/ TARGETP=${HOME}/little/ mkdir -pv $TARGETP ENCODER=oggenc DECODER=oggdec DECODER_OPTIONS=" -o - " for FICHIER in ${BASEP}**/*.ogg(.ND); do { cd $FICHIER:h NEWNAME=`print $FICHIER | sed 's/music/little/g'` mkdir -pv $NEWNAME:h ENCODER_OPTIONS=" --downmix --resample 5512 -q 1 -o ${NEWNAME} - " $DECODER $DECODER_OPTIONS | $ENCODER $ENCODER_OPTIONS }
Il y aura moins d'erreur de cette manière,
cd $BASEP for FICHIER in **/*.ogg(.ND); do NEWNAME=${TARGETP}/${FICHIER} mkdir -pv $NEWNAME:h ENCODER_OPTIONS=" --downmix --resample 5512 -q 1 -o ${NEWNAME} - (cd $FICHIER:h $DECODER $DECODER_OPTIONS ) | $ENCODER $ENCODER_OPTIONS done
Mais bon, il en reste surement encore. Mieux vaut utiliser "sh" et un bon vieux "find | while read" et virer toutes ces variables constantes et à usage unique.
Nicolas George
R12y wrote in message :
#!/bin/zsh
Compare ces trois scripts :
#!/bin/zsh a="foo bar baz" for i in $a; do echo $i done
#!/bin/sh a="foo bar baz" for i in $a; do echo $i done
#!/bin/zsh a=(foo bar baz) for i in $a; do echo $i done
Ça devrait te donner la réponse.
R12y wrote in message <pan.2005.04.06.15.05.01.857934@mail.rktmb.org>:
#!/bin/zsh
Compare ces trois scripts :
#!/bin/zsh
a="foo bar baz"
for i in $a; do
echo $i
done
#!/bin/sh
a="foo bar baz"
for i in $a; do
echo $i
done
#!/bin/zsh
a=(foo bar baz)
for i in $a; do
echo $i
done
#!/bin/zsh a="foo bar baz" for i in $a; do echo $i done
#!/bin/sh a="foo bar baz" for i in $a; do echo $i done
#!/bin/zsh a=(foo bar baz) for i in $a; do echo $i done
Ça devrait te donner la réponse.
Nicolas George
Laurent Wacrenier wrote in message :
Mieux vaut utiliser "sh" et un bon vieux "find | while read"
C'est infiniment plus lourd à faire fiablement qu'utiliser le glob de zsh : il faut jouer avec IFS pour avoir un découpage aussi fiable, en particulier.
et virer toutes ces variables constantes et à usage unique.
C'est au contraire une bonne pratique que d'avoir tous les paramètres du script regroupés à un endroit facilement modifiable sans risquer de tout casser. Ça améliore la lisibilité et la maintenabilité.
Laurent Wacrenier wrote in message
<slrnd5803i.br.lwa@victor.teaser.fr>:
Mieux vaut utiliser "sh" et un bon vieux "find | while read"
C'est infiniment plus lourd à faire fiablement qu'utiliser le glob de zsh :
il faut jouer avec IFS pour avoir un découpage aussi fiable, en particulier.
et virer toutes ces variables constantes et à usage unique.
C'est au contraire une bonne pratique que d'avoir tous les paramètres du
script regroupés à un endroit facilement modifiable sans risquer de tout
casser. Ça améliore la lisibilité et la maintenabilité.
Mieux vaut utiliser "sh" et un bon vieux "find | while read"
C'est infiniment plus lourd à faire fiablement qu'utiliser le glob de zsh : il faut jouer avec IFS pour avoir un découpage aussi fiable, en particulier.
et virer toutes ces variables constantes et à usage unique.
C'est au contraire une bonne pratique que d'avoir tous les paramètres du script regroupés à un endroit facilement modifiable sans risquer de tout casser. Ça améliore la lisibilité et la maintenabilité.
Il y aura moins d'erreur de cette manière, [...] NEWNAME=${TARGETP}/${FICHIER} [...]
Non là ça passera pas. C'est pour ça que j'ai dû faire le "print| sed", sinon je me retrouve trop en profondeur.
Mais bon, il en reste surement encore. Mieux vaut utiliser "sh" et un bon vieux "find | while read" et virer toutes ces variables constantes et à usage unique.
Non. Je suis sur une machine de test, et l'arborescence est légèrement différente sur la machine sur laquelle le script devra vraiment tourner. De plus ce n'est que le début du script, j'ai du arreter le developpement parceque je bloquait, mais ces variables me seront encore utiles.
Si ce truc devait s'arreter là, je l'aurais fait en interactif :-)
Mais merci pour tes conseils, ça prouve que tu cherche à en donner de bons, puisque tu vas jusqu'à analyser le code de celui qui demande de l'aide ;-).
-- Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois! La preuve http://www.google.fr/search?q=serveur+dedie Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
Il y aura moins d'erreur de cette manière,
[...]
NEWNAME=${TARGETP}/${FICHIER}
[...]
Non là ça passera pas.
C'est pour ça que j'ai dû faire le "print| sed",
sinon je me retrouve trop en profondeur.
Mais bon, il en reste surement encore.
Mieux vaut utiliser "sh" et un bon vieux "find | while read"
et virer toutes ces variables constantes et à usage unique.
Non. Je suis sur une machine de test, et l'arborescence est légèrement
différente sur la machine sur laquelle le script devra vraiment tourner.
De plus ce n'est que le début du script, j'ai du arreter le developpement
parceque je bloquait, mais ces variables me seront encore utiles.
Si ce truc devait s'arreter là, je l'aurais fait en interactif :-)
Mais merci pour tes conseils, ça prouve que tu cherche à en donner de
bons, puisque tu vas jusqu'à analyser le code de celui qui demande de
l'aide ;-).
--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
Il y aura moins d'erreur de cette manière, [...] NEWNAME=${TARGETP}/${FICHIER} [...]
Non là ça passera pas. C'est pour ça que j'ai dû faire le "print| sed", sinon je me retrouve trop en profondeur.
Mais bon, il en reste surement encore. Mieux vaut utiliser "sh" et un bon vieux "find | while read" et virer toutes ces variables constantes et à usage unique.
Non. Je suis sur une machine de test, et l'arborescence est légèrement différente sur la machine sur laquelle le script devra vraiment tourner. De plus ce n'est que le début du script, j'ai du arreter le developpement parceque je bloquait, mais ces variables me seront encore utiles.
Si ce truc devait s'arreter là, je l'aurais fait en interactif :-)
Mais merci pour tes conseils, ça prouve que tu cherche à en donner de bons, puisque tu vas jusqu'à analyser le code de celui qui demande de l'aide ;-).
-- Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois! La preuve http://www.google.fr/search?q=serveur+dedie Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
Laurent Wacrenier
Nicolas George <nicolas$ écrit:
Mieux vaut utiliser "sh" et un bon vieux "find | while read"
C'est infiniment plus lourd à faire fiablement qu'utiliser le glob de zsh : il faut jouer avec IFS pour avoir un découpage aussi fiable, en particulier.
Mais à part les passages à la ligne dans les noms des fichiers, ça ne craint pas grand chose.
et virer toutes ces variables constantes et à usage unique.
C'est au contraire une bonne pratique que d'avoir tous les paramètres du script regroupés à un endroit facilement modifiable sans risquer de tout casser. Ça améliore la lisibilité et la maintenabilité.
C'est contradictioire, on ne peut pas stocker des noms de fichier dans une variable scalaire et demander plus tard de découper cette variable.
En plus, les variables sont éparpillées dans le script.
Nicolas George <nicolas$george@salle-s.org> écrit:
Mieux vaut utiliser "sh" et un bon vieux "find | while read"
C'est infiniment plus lourd à faire fiablement qu'utiliser le glob de zsh :
il faut jouer avec IFS pour avoir un découpage aussi fiable, en particulier.
Mais à part les passages à la ligne dans les noms des fichiers, ça ne
craint pas grand chose.
et virer toutes ces variables constantes et à usage unique.
C'est au contraire une bonne pratique que d'avoir tous les paramètres du
script regroupés à un endroit facilement modifiable sans risquer de tout
casser. Ça améliore la lisibilité et la maintenabilité.
C'est contradictioire, on ne peut pas stocker des noms de fichier dans
une variable scalaire et demander plus tard de découper cette
variable.
En plus, les variables sont éparpillées dans le script.
Mieux vaut utiliser "sh" et un bon vieux "find | while read"
C'est infiniment plus lourd à faire fiablement qu'utiliser le glob de zsh : il faut jouer avec IFS pour avoir un découpage aussi fiable, en particulier.
Mais à part les passages à la ligne dans les noms des fichiers, ça ne craint pas grand chose.
et virer toutes ces variables constantes et à usage unique.
C'est au contraire une bonne pratique que d'avoir tous les paramètres du script regroupés à un endroit facilement modifiable sans risquer de tout casser. Ça améliore la lisibilité et la maintenabilité.
C'est contradictioire, on ne peut pas stocker des noms de fichier dans une variable scalaire et demander plus tard de découper cette variable.
En plus, les variables sont éparpillées dans le script.
Laurent Wacrenier
Rakotomandimby (R12y) Mihamina écrit:
Il y aura moins d'erreur de cette manière, [...] NEWNAME=${TARGETP}/${FICHIER} [...]
Pfff. Mal lu. Désolé. Merci. Bon je recode... au moins je suis sûr que je vais plus vite que les devs du Hurd ;-) quite à tout reprendre à chaque fois... :-)
-- Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois! La preuve http://www.google.fr/search?q=serveur+dedie Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
Pfff. Mal lu. Désolé. Merci.
Bon je recode... au moins je suis sûr que je vais plus vite que les devs
du Hurd ;-) quite à tout reprendre à chaque fois... :-)
--
Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois!
La preuve http://www.google.fr/search?q=serveur+dedie
Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
Pfff. Mal lu. Désolé. Merci. Bon je recode... au moins je suis sûr que je vais plus vite que les devs du Hurd ;-) quite à tout reprendre à chaque fois... :-)
-- Les serveurs avec 10Mb/s se louent maintenant pour 50 ou 60 Euros par mois! La preuve http://www.google.fr/search?q=serveur+dedie Infogerance de serveur dedie http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
Laurent Wacrenier
Nicolas George <nicolas$ écrit:
Laurent Wacrenier wrote in message :
C'est contradictioire, on ne peut pas stocker des noms de fichier dans une variable scalaire et demander plus tard de découper cette variable.
Avec zsh, si, on peut, justement.
On peut quoi ? Si le fichier s'appele "foo bar" et tu fais
options="--titi ${fichier}"
comment c'est sensé marcher ?
Nicolas George <nicolas$george@salle-s.org> écrit:
Laurent Wacrenier wrote in message
<slrnd5831j.12t.lwa@victor.teaser.fr>:
C'est contradictioire, on ne peut pas stocker des noms de fichier dans
une variable scalaire et demander plus tard de découper cette
variable.
Avec zsh, si, on peut, justement.
On peut quoi ?
Si le fichier s'appele "foo bar" et tu fais