将草稿脚本从bash转换为Make

时间:2019-04-26 01:45:27

标签: makefile

我喜欢有一个脚本,该脚本将在我撰写新博客文章时填写在前。过去,我使用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是here,其中draft仅执行原始的shell脚本。

0 个答案:

没有答案