#1 Le 28/02/2007, à 13:33
- Ambassadeur
shell et un débutant : les espaces dans les variables
Mon idée de base : faire un script qui me copie tous mp3 dans le même dossier en les sortants des 15 000 dossier ou ils sont éparpillé.
C'est assez simple mais j'ai un petit problème niveau des variables. J'utilise
$i in `ls`
Mais sa pose problème pour les nom avec des espaces. genre pour "system of a down", $i ne contient que "system".
Comment faire pour que `ls` affecte le nom complet sens s'arrêter au premier blanc ?
J'ai cherché sur le net mais j'ai pas trouvé de réponse. Elle est peut être plus loi dans les tutos, mais je n'en suis qu'au base.
merci
Hors ligne
#2 Le 28/02/2007, à 13:36
- BookeldOr
Re : shell et un débutant : les espaces dans les variables
for i in * ; do echo '<<'$i'>>' ; done
ou
ls -1 | while read i ; do echo '<<'$i'>>' ; done
Ubuntu is an ancient african word meaning : "I can't configure Debian".
Hors ligne
#3 Le 28/02/2007, à 13:43
- Ambassadeur
Re : shell et un débutant : les espaces dans les variables
Merci pour la réponse rapide .
Hors ligne
#4 Le 28/02/2007, à 14:52
- BookeldOr
Re : shell et un débutant : les espaces dans les variables
De rien, j'espère qu'avec ça tes soirées seront toujours une réussite grâce à des friandises au chocolat emballées dans du papier doré.
Plus sérieusement, ça fonctionne comme tu veux?
Ubuntu is an ancient african word meaning : "I can't configure Debian".
Hors ligne
#5 Le 28/02/2007, à 15:20
- kaworu
Re : shell et un débutant : les espaces dans les variables
En bash, il est aussi possible de faire :
while read FILE; do
echo "<<$FILE>>"
done < <(ls)
c'est moins clair que le for i in * , mais plus utile lorsque que l'on veut parser la sortie d'une commande. l'écriture avec le pipe est à éviter.
"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."
Hors ligne