@Quad_Tree

Где я ошибся в sh скрипте?

Вот такая строка в файле update.sh:
find -name "*.md" -exec touch time.md.html \; -exec cat theme/header.html >> time.md.html \    ; -exec pandoc -t html {} >> time.md.html \; -exec cat theme/footer.html >> time.md.html \;     -exec cp time.md.html blog/{}.html \; -exec rm time.md.html \;

Сейчас опишу что она делает:
1. Находит все файлы с расширением md в текущей директории и выполняет над ними несколько команд:
1.1. Создаёт временный файл time.md.html
1.2. Записывает в него содержимое theme/header.html
1.3. Содержимое найденного md файла конвертируется в html формат и записывается во временный файл
1.4. И на последок записывает в него содержимое theme/footer.html
1.5. Далее сформированную html страницу в виде файла time.md.html копирую в папку blog с исходным именем файла
1.6. Удаляю временный файл time.md.html
В результате в папке blog должен получится набор готовых html страниц.

Но вместо этого я получаю кучу файлов в папке blog, которые абсолютно ничего не содержат и только одну html страницу, которая содержит хоть что-то. Где я мог ошибиться?
  • Вопрос задан
  • 460 просмотров
Пригласить эксперта
Ответы на вопрос 1
Daemon23RUS
@Daemon23RUS
Замените последние 2 команды на mv (перемещение), и пронаблюдаете интересный результат. На выходе получите 1 файл в который последовательно будет сложено все содержимое. и энное количество ошибок что Нет такого файла или каталога. Я так думаю что что хендл удаленного файла еще остается у find`a Переделайте команду так, чтобы создавались разные файлы, и переносите/переименовывайте
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы