首页 > 解决方案 > 将草稿脚本从 bash 转换为 Make

问题描述

当我写新的博客文章时,我喜欢有一个脚本来填充前面的内容。过去,我使用 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,因此我想在这里做同样的事情。这是我定义draft规则的 Makefile 部分。我想我已经逃脱了所有变量,但它仍然不会运行。有人可以解释我可能会出错的地方吗?

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地执行原始的 shell 脚本。

标签: makefile

解决方案


推荐阅读