Depuis qu'on m'a montré comment faire des boucles for avec un shell, je suis
tout content et j'en mets un peu à toutes les sauces (y compris en
interactif). Sauf que.
Je me suis rendu compte qu'il y avait des gros trous dans mon savoir tout
neuf en essayant de faire :
for i in `ls .`; do something-with $i; done;
dans un répertoire comportant plein de fichiers avec des espaces dans leur
nom... vous vous doutez de ce qui arriva : pour chaque fichier 'a b' j'ai
eu droit à un
'"a" : aucun fichier de ce type'
'"b" : aucun fichier de ce type'
que j'avais au fond bien mérité.
Y a-t-il moyen de s'en sorti quand même ? Pour le moment, j'ai salement
renommé mes fichiers sans espaces, puis fait le truc, puis renommé avec,
mais ça ne me plaît pas trop... Au cas où ça ferait une différence, je fais
ça avec zsh et la version GNU de ls, mais si il y a une façon standard de
le faire, ça m'intéresse aussi.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
YBM
Bonjour,
Depuis qu'on m'a montré comment faire des boucles for avec un shell, je suis tout content et j'en mets un peu à toutes les sauces (y compris en interactif). Sauf que.
Je me suis rendu compte qu'il y avait des gros trous dans mon savoir tout neuf en essayant de faire : for i in `ls .`; do something-with $i; done; dans un répertoire comportant plein de fichiers avec des espaces dans leur nom... vous vous doutez de ce qui arriva : pour chaque fichier 'a b' j'ai eu droit à un '"a" : aucun fichier de ce type' '"b" : aucun fichier de ce type' que j'avais au fond bien mérité.
Y a-t-il moyen de s'en sorti quand même ?
for i in * ; do echo "$i"; done
les '"' autour de $i sont important aussi afin que la commande exécutée reçoivent bien le fichier en argument et non deux (ou plus) arguments.
Bonjour,
Depuis qu'on m'a montré comment faire des boucles for avec un shell, je suis
tout content et j'en mets un peu à toutes les sauces (y compris en
interactif). Sauf que.
Je me suis rendu compte qu'il y avait des gros trous dans mon savoir tout
neuf en essayant de faire :
for i in `ls .`; do something-with $i; done;
dans un répertoire comportant plein de fichiers avec des espaces dans leur
nom... vous vous doutez de ce qui arriva : pour chaque fichier 'a b' j'ai
eu droit à un
'"a" : aucun fichier de ce type'
'"b" : aucun fichier de ce type'
que j'avais au fond bien mérité.
Y a-t-il moyen de s'en sorti quand même ?
for i in * ; do echo "$i"; done
les '"' autour de $i sont important aussi afin que la commande
exécutée reçoivent bien le fichier en argument et non deux (ou plus)
arguments.
Depuis qu'on m'a montré comment faire des boucles for avec un shell, je suis tout content et j'en mets un peu à toutes les sauces (y compris en interactif). Sauf que.
Je me suis rendu compte qu'il y avait des gros trous dans mon savoir tout neuf en essayant de faire : for i in `ls .`; do something-with $i; done; dans un répertoire comportant plein de fichiers avec des espaces dans leur nom... vous vous doutez de ce qui arriva : pour chaque fichier 'a b' j'ai eu droit à un '"a" : aucun fichier de ce type' '"b" : aucun fichier de ce type' que j'avais au fond bien mérité.
Y a-t-il moyen de s'en sorti quand même ?
for i in * ; do echo "$i"; done
les '"' autour de $i sont important aussi afin que la commande exécutée reçoivent bien le fichier en argument et non deux (ou plus) arguments.
mpg
Le (on) jeudi 27 décembre 2007 02:59, YBM a écrit (wrote) :
for i in `ls .`; do something-with $i; done; [...] Y a-t-il moyen de s'en sorti quand même ?
for i in * ; do echo "$i"; done
les '"' autour de $i sont important aussi afin que la commande exécutée reçoivent bien le fichier en argument et non deux (ou plus) arguments.
Oki, super ! En plus c'est plus facile à taper et tout. J'aurais pu y penser en fait... En tout cas merci pour ta réponse rapide et efficace. Pour le "$i", j'y avais pensé, mais comme avec mon `ls .` il y avait déjà un problème en amont... Enfin ça au moins je comprends pourquoi ils sont utiles.
Manuel.
Le (on) jeudi 27 décembre 2007 02:59, YBM a écrit (wrote) :
for i in `ls .`; do something-with $i; done;
[...]
Y a-t-il moyen de s'en sorti quand même ?
for i in * ; do echo "$i"; done
les '"' autour de $i sont important aussi afin que la commande
exécutée reçoivent bien le fichier en argument et non deux (ou plus)
arguments.
Oki, super ! En plus c'est plus facile à taper et tout. J'aurais pu y penser
en fait... En tout cas merci pour ta réponse rapide et efficace. Pour
le "$i", j'y avais pensé, mais comme avec mon `ls .` il y avait déjà un
problème en amont... Enfin ça au moins je comprends pourquoi ils sont
utiles.
Le (on) jeudi 27 décembre 2007 02:59, YBM a écrit (wrote) :
for i in `ls .`; do something-with $i; done; [...] Y a-t-il moyen de s'en sorti quand même ?
for i in * ; do echo "$i"; done
les '"' autour de $i sont important aussi afin que la commande exécutée reçoivent bien le fichier en argument et non deux (ou plus) arguments.
Oki, super ! En plus c'est plus facile à taper et tout. J'aurais pu y penser en fait... En tout cas merci pour ta réponse rapide et efficace. Pour le "$i", j'y avais pensé, mais comme avec mon `ls .` il y avait déjà un problème en amont... Enfin ça au moins je comprends pourquoi ils sont utiles.