У мене є каталог, що містить кілька файлів, деякі з яких мають пробіли в своїх іменах:
Test workspace/
Another directory/
file1.ext
file2.ext
demo 2012-03-23.odp
Я використовую $(wildcard)
команду GNU для цього каталогу, а потім переглядаю результат, використовуючи $(foreach)
, роздруковуючи все. Ось код:
FOO := $(wildcard *)
$(info FOO = $(FOO))
$(foreach PLACE,$(FOO),$(info PLACE = $(PLACE)))
Ось, що я очікував би побачити роздрукованим:
Test workspace
Another directory
file1.ext
file2.ext
demo 2012-03-23.odp
Ось, що я насправді отримав би:
Test
workspace
Another
directory
file1.ext
file2.ext
demo
2012-03-23.odp
Останнє, очевидно, мені не приносить користі. Документація для $(wildcard)
плоского з станів , що вона повертає «розділений пробілами список імен» , але абсолютно не визнати факт величезні проблеми з цим виникає. Також документація для $(foreach)
.
Чи можна обійти це? Якщо так, то як? Перейменування кожного файлу та каталогу для видалення пробілів не є можливим.
$?
і$@
. Якщо вам цікаво, дивіться мою відповідь нижче. і Луї, помиляється, це працює. Не соромтеся випробувати це самі