Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/02/2007, à 14: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 smile

Hors ligne

#2 Le 28/02/2007, à 14: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, à 14:43

Ambassadeur

Re : shell et un débutant : les espaces dans les variables

Merci pour la réponse rapide smile.

Hors ligne

#4 Le 28/02/2007, à 15: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, à 16: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