Я пишу make-файл для некоторых личных документов, написанных в Markdown, и хочу объединить все файлы во время сборки, чтобы мне не приходилось редактировать Makefile каждый раз, когда я добавляю новый файл. Это мой код:
MERGE:
@printf "Merging all files into one...\n"
@cp .yaml tmp
@for file in *.md;\
do\
cat $$file;\
echo "";\
done > tmp
@mv tmp tmp.md
Увы, всякий раз, когда я запускаю его, make возвращает это и зависает:
Merging all files into one...
cat: 0: No such file or directory
Я читал, что могу вызывать cat как файл? Но я использую правильный синтаксис for и экранирую $ как $$.
Что я тогда делаю не так?





Вы можете попробовать следующий цикл:
for file in *.md; do
cat "$file"
echo ""
done >> tmp.md
Оно работает. Спасибо! Где я могу найти документацию о разнице между передачей аргументов с кавычками или без них?