boucle for qui ne marche pas [shell script] - Shell/Batch - Programmation
Marsh Posté le 22-11-2005 à 11:24:52
modifie l'IFS :
Code :
|
Marsh Posté le 22-11-2005 à 11:26:59
ca fonctionne parfaitement.
Mais dois-je restaurer l'original après ? et si oui, comment ?
Merci en tout cas.
Marsh Posté le 22-11-2005 à 20:50:32
Une autre solution (mais c'est dur à dire vu que tu ne nous dit pas exactement ce que tu dois faire dans la boucle), c'est de ne pas utiliser ls et de boucler directement sur * :
for i in *; do echo "$i"; done |
Marsh Posté le 22-11-2005 à 11:18:26
Salut,
je suis en train d ecrire un shell script sous linux qui permet en gros de creer des repertoire en fonction du nom de chaque fichier contenu dans un repertoire.
Le probleme, c'est que le nom de ces fichiers peut contenir des espaces.
Ainsi, quand je fais la chose suivante :
il me liste bien les fichiers un par un si le fichier ne contient pas d'espace, mais s'il y a un ou plusieurs espaces, il boucle en fait à chaque fois qu'il rencontre un espace.
Exemple de résultat :
mv "/mnt/020_BE/Software/FMR/rsn/RP40215.doc" "/mnt/020_BE/Software/FMR/rsn/P40215-C"
mv "/mnt/020_BE/Software/FMR/rsn/P80050" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "-" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "A" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "-" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "BOUTON" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "FINGER" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "4-2" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "GRAVE.dwg" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "/mnt/020_BE/Software/FMR/rsn/RP80050.doc" "/mnt/020_BE/Software/FMR/rsn/P80050 - A - BOUTON FINGER 4-2 GRAVE"
mv "/mnt/020_BE/Software/FMR/rsn/P80053-B_BOUTON" "/mnt/020_BE/Software/FMR/rsn/P80053-B_BOUTON CLAVIER IBE 1402 GRAVE LASER"
mv "CLAVIER" "/mnt/020_BE/Software/FMR/rsn/P80053-B_BOUTON CLAVIER IBE 1402 GRAVE LASER"
mv "IBE" "/mnt/020_BE/Software/FMR/rsn/P80053-B_BOUTON CLAVIER IBE 1402 GRAVE LASER"
mv "1402" "/mnt/020_BE/Software/FMR/rsn/P80053-B_BOUTON CLAVIER IBE 1402 GRAVE LASER"
mv "GRAVE" "/mnt/020_BE/Software/FMR/rsn/P80053-B_BOUTON CLAVIER IBE 1402 GRAVE LASER"
mv "LASER.dwg" "/mnt/020_BE/Software/FMR/rsn/P80053-B_BOUTON CLAVIER IBE 1402 GRAVE LASER"
mv "/mnt/020_BE/Software/FMR/rsn/RP80053.doc" "/mnt/020_BE/Software/FMR/rsn/P80053-B_BOUTON CLAVIER IBE 1402 GRAVE LASER"
mv "/mnt/020_BE/Software/FMR/rsn/P80348-1&2-A_gravure" "/mnt/020_BE/Software/FMR/rsn/P80348-1&2-A_gravure bouton laser"
mv "bouton" "/mnt/020_BE/Software/FMR/rsn/P80348-1&2-A_gravure bouton laser"
mv "laser.dwg" "/mnt/020_BE/Software/FMR/rsn/P80348-1&2-A_gravure bouton laser"
mv "/mnt/020_BE/Software/FMR/rsn/RP80348-1&2.doc" "/mnt/020_BE/Software/FMR/rsn/P80348-1&2-A_gravure bouton laser"
Y a-t-il possibilité de définir une règle différente pour la boucle for, afin qu'il ne considère pas les espaces comme séparateur ?
merci d'avance
(désolé si ca vous parait évident, je débute en shell script).