J'essaye d'obtenir le contenu d'un répertoire en utilisant un script shell.
Mon script est:
for entry in `ls $search_dir`; do
echo $entry
done
où $search_dir
est un chemin relatif. Cependant, $search_dir
contient de nombreux fichiers avec des espaces dans leurs noms. Dans ce cas, ce script ne s'exécute pas comme prévu.
Je sais que je pourrais utiliser for entry in *
, mais cela ne fonctionnerait que pour mon répertoire actuel.
Je sais que je peux accéder à ce répertoire, utiliser for entry in *
puis revenir en arrière, mais ma situation particulière m'empêche de le faire.
J'ai deux chemins relatifs $search_dir
et $work_dir
, et je dois travailler sur les deux simultanément, en les lisant, en créant / supprimant des fichiers, etc.
Alors qu'est-ce que je fais maintenant?
PS: j'utilise bash.
for entry in "$search_dir/*"
ne fonctionne pas? Pourquoi devons-nous placer en/*
dehors des citations?