Attribuer des noms de fichiers à une variable du shell

Je suis en train d'écrire un script qui fait quelque chose d'un peu plus sophistiqué que ce que je vais vous montrer, mais je sais que le problème est dans cette partie.

Je veux que chaque nom de la liste de fichiers dans un répertoire à être affectée à une variable (la même variable, un à la fois) par le biais d'un for boucle, puis faire quelque chose à l'intérieur de la boucle avec ce, voir ce que veux dire:

for thing in $(ls $1);
do
    file $thing;
done

Edit: disons que ce scrypt est appelé Scrypt et j'ai un dossier appelé Dossier, et il a 3 fichiers à l'intérieur nommées A,B,C. je veux me montrer sur le terminal au moment où j'écris ceci:

./scrypt Folder

suivantes:

A: file
B: file
C: file

Avec le code que j'ai montré ci-dessus, j'obtiens ceci:

A: ERROR: cannot open `A' (No such file or directory)
B: ERROR: cannot open `B' (No such file or directory)
C: ERROR: cannot open `C' (No such file or directory)

c'est le problème

Quel est le problème? Ce que vous avez devrait très bien fonctionner exactement comme il est.
Oui, la seule chose de mal ici, c'est de casser sur les espaces.
eh bien, il dit de le faire pour chaque fichier: ERREUR: impossible d'ouvrir le fichier " (aucun fichier ou répertoire)

OriginalL'auteur Zasito | 2012-11-22