Re: [CBLX] Bash: traiter des noms avec espaces...

[ Thread Index | Date Index | More lists.tuxfamily.org/carrefourblinux Archives ]


Hello,

en aucun cas ça le fais; je m'explique:

On Tue, Apr 29, 2014 at 01:19:10PM +0200, Dominique Asselineau wrote:
> 
> Aldo wrote on Tue, Apr 29, 2014 at 12:57:16PM +0200
> > On Sun, Apr 27, 2014 at 04:06:03PM +0200, Dominique Asselineau wrote:
> > > 
> > > Aldo wrote on Sun, Apr 27, 2014 at 03:00:26PM +0200
> > > > Hello le forum,
> > > > 
> > > > j'ai un script que voici, qui a pour but de convertir tous les fichiers
> > > > .flac du répo en mp3; seu lsouci, hier le script ne fonctionnait pas, et
> > > > pour cause, j'arrive pas à lui refiler des Noms\ de\ fichier\ avec\
> > > > esapce.flac
> > > > Qq'un sait-il ce qu'il faut modifier dans le script suiivant ?
> > > 
> > > encadrer les noms de fichier dans des double quotes.
> > 
> > Y a pas de noms vu que c des variables; donc le "$i" comme suggéré
> > fonctionnerait ? suffirait ?
> 
> Oui puisque la valeur de la variable est justement un nom de fichier
> avec des espaces.  C'est pourquoi ça doit être encadré par des double
> quotes.

J'ai mis dans /tmp trois fichiers test suivants:
dernier - la .flac
premier la .flac
second la .flac

Voici le script initial, modifié (où j'ai encadré), qui ne fonctionne 
pas:

#!/bin/bash
# All FLAC to MP3 (3)
function allflactomp3 ()
{
clear
for i in `ls *.flac`
do
mplayer -vo null -ao pcm:file=$i.wav "$i"
# ( ai encadré le $i )
lame -b 320 -h "$i.wav" "$i.mp3"
# ( idem ici les sorties wav et mp3, encadrées )
done
#for i in *.wav.mp3; do mv "$i" "${i/%.wav.mp3/.mp3}"; done
# (ligne optionnelle, ainsi que la suivante) 
ls -mpF *.mp3 |more
}
allflactomp3
exit
## fin du script ##

Quand j'exécute ça reste le curseur ..... en l'air/dans le vide,
seuls plusieurs ctrl+c aident/permettent de couper court à une opération qui
de toute façon n'aura pas lieu. 
 
Aldo. 


(script d'origine en pj)
#!/bin/bash
# All FLAC to MP3 (3)
function allflactomp3 ()
{
clear
for i in `ls *.flac`
do
mplayer -vo null -ao pcm:file=$i.wav $i
lame -b 320 -h $i.wav $i.mp3
done
#for i in *.wav.mp3; do mv "$i" "${i/%.wav.mp3/.mp3}"; done
ls -mpF *.mp3 |more
}
allflactomp3
exit


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/