Преобразование чернового скрипта из bash в Make - PullRequest
0 голосов
/ 26 апреля 2019

Мне нравится иметь скрипт, который будет заполнять передний план, когда я пишу новые сообщения в блоге В прошлом я делал это, используя Bash, как показано ниже.

#!/bin/bash

# Set some variables

export site_path=~/Documents/Blog
drafts_path=~/Documents/Blog/_drafts
title="$1"

# Create the filename

title=$(awk '{print tolower($0)}' <<<"$title")
filename="$title.markdown"
file_path="$drafts_path/$filename"
echo "File path: $file_path"

# Create the file, Add metadata fields

cat >"$file_path" <<EOL
---
title: "$title"
layout: post
tags: 
---
EOL

# Open the file in BBEdit

bbedit "$file_path"

exit 0

Хотя это не самый хороший код, он делает свою работу. Поскольку я переместил свои другие сценарии на использование Make, я бы хотел сделать то же самое здесь. Здесь раздел моего Makefile, где я определил правило draft. Я думаю, что я избежал всех переменных, но он все еще не будет работать. Может кто-нибудь объяснить, где я могу пойти не так?

SITE_PATH=~/Documents/Blog \
DRAFTS_PATH=~/Documents/Blog/_drafts \
TITLE="$$1" \

TITLE="$$(awk '{print tolower($$0)}' <<<"$$TITLE")" \
FILENAME="$$TITLE.markdown" \
FILE_PATH="${DRAFTS_PATH}/$$FILENAME" \
FILE_PATH="$${FILE_PATH}" \

cat >"$${FILE_PATH}" <<EOL \
--- \
title: "$$title" \
layout: post \
tags: \
--- \
EOL \

# Open the file in BBEdit

bbedit "$${FILE_PATH}" \

exit 0

Обновление : Для справки полный Makefile - здесь , где draft просто выполняет оригинальный сценарий оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...