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