# [SCRIPT] attention couleur avec ls

## Arvernux

Salut à tous,

Récemment, j'ai voulu écrire un petit bout de script en ligne pour compresser des fichiers :

```
for fichier in `ls *.wav`; do

lame ${fichier} ${fichier/.wav/.mp3};

done;
```

Eh bien, mon grand étonnement, ça ne fonctionnait pas. J'avais un retour d'erreur comme quoi "lame" ne trouvait pas le fichier.   :Shocked: 

Si je remplaçait "lame" par "echo" ça fonctionnait. 

J'ai trouvé le problème par intuition... J'ai configuré "ls" pour afficher de la couleur. Or les caractères insérés pour coder la couleur dans bash ne sont pas interprétés sur la ligne de commande de "lame".

Solution : enlever la couleur.

```
for fichier in `ls --color=none *.wav`; do

lame ${fichier} ${fichier/.wav/.mp3};

done;
```

Eh hop, tout est impeccable !   :Wink: 

À plus.

----------

## SnowBear

Salut,

il y'a plus simple et plus logique je trouve  :Wink: 

```
for i in *.wav; do

lame $i "`basename "$i" .wav`.mp3"

done
```

----------

## kopp

Ouaip, enfin, il reste que la convention pour les titres, ça marche aussi dans le forum Doc & Astuce, 

donc ce serait sympa si tu le changeais pour qu'il soit conforme, et au passage plus explicite  (genre préciser sur le traitement du code de couleur etc...)

Dans tous les cas, même si l'astuce dans le cas présent n'était pas nécessaire parce que ce n'était pas la méthode la plus simple pour le coder, elle reste utile (comme toute astuce d'ailleurs) pour les situations où on serait obliger d'utiliser les ` `...

Merci, si jamais ça m'arrive j'y penserais comme ça  :Smile: 

----------

## Arvernux

Désolé si mon post manque de pertinence.... Je ne suis pas un expert en script bash, mais comme ce problème m'a coincé une demi heure, je m'étais dit que je pourrais peut-être éviter la même désaventure à d'autres.

Comme je n'ai pas réussi à trouver un cours appliqué et utilisable sur les scripts, je ne connaissais même pas la possibilité de faire ce qu'il a dans ton code SnowBear.

kopp, si tu pouvais me faire une proposition pour le titre, j'apprécierais.

----------

## SnowBear

Néanmoins le plus important c'est d'arriver à trouver une solution à ton problème,

ce que tu as fait  :Wink: 

----------

## geekounet

Tu peux modifier ton alias ls comme ça :

```
alias ls="ls --color=auto"
```

Ca ne mettra les couleurs qu'en cas de sortie vers le terminal.Last edited by geekounet on Tue Jan 17, 2006 12:44 am; edited 1 time in total

----------

## Arvernux

Merci pierreg, je connaissais pas cette config.

----------

