URL: https://linuxfr.org/forums/programmation-shell/posts/probl%C3%A8me-avec-les-espaces Title: Problème avec les espaces Authors: Maxime AD Date: 2006年01月31日T02:30:01+01:00 Tags: Score: 0 Bonjour, J'ai fait un petit script pour sauver un peu d'espace pour mes photos: #On fous tous les fichiers .jpg du répertoire courant dans une variable fichiers=`ls -l | grep .jpg` #Compteur qui servira pour choisir un fichier différent à chaque passage de la boucle. compteur=0 #Nombre de fichiers .jpg dans le répertoire courant nbfichiers=`ls -1 | grep .jpg | wc -l` #Boucle qui prend le nom du fichier, le compresse et le fous dans le dossier compresse. if [ -w compresse ];then £spaces£ £/spaces£sleep 0 £spaces£ £/spaces£else £spaces£ £/spaces£mkdir compresse £spaces£ £/spaces£echo 'Répertoire "compresse" créé.' fi while [ $compteur != $nbfichiers ]; do £spaces£ £/spaces£let compteur=compteur+1 £spaces£ £/spaces£fichier=`echo $fichiers | cut -d \ -f$compteur` £spaces£ £/spaces£convert -quality 90 $fichier ./compresse/$fichier £spaces£ £/spaces£echo "La photo $fichier vient d'être compressée." done J'ai fait le test avec 2-3 photos dans un répertoire et tout marchait à la perfection. Par contre, je me suis aperçu que ça ne marchait pas dès qu'il y avait des fichiers avec des espaces. Je sais d'où vient le problème et vous le verrez assez vite (cut sépare les «fichier par un espace»... Donc photo noel.jpg serait 2 fichiers distincts selon mon script.). Peut-être existe-t-il une solution plus simple? Sinon... J'aurais pensé de sortir le ls en lignes et de prendre chaque ligne comme nom de fichier pour la boucle, mais je ne sais pas très bien comment faire. Merci de m'aider... --Un débutant