echo -e "---\n..." for jekyll headers 生成 YAML 异常

echo -e "---\n..." for jekyll headers generates YAML exception

我编写了一个自动将 ipython 笔记本转换为 markdown 的脚本,在将输出保存到文件之前,我通过在 bash 中执行以下操作添加了一个 Jekyll header:

echo -e "---\ntitle: $title\n---\n\n$(cat $destfile)" > "$destfile"

问题是每当我添加 Jekyll header 时,它都会生成一个 YAML 异常:

Error: YAML Exception reading notebook.md: (<unknown>): did not find expected key while parsing a block mapping at line 2 column 1

用 sublime 查看时的输出看起来像这样,看起来完全像预期的 Jekyll header:

---
title: Built-in Data Iterators
---

### Note

Please view the README

只要我删除 header,Jekyll 就可以正常编译。如果我用完全相同的 headers 手动创建另一个 Jekyll 文件,它工作得很好。这里发生了什么?这是某种字符编码问题吗?

更新

尝试使用 printf:

时也会发生同样的情况
{
    printf "%s\n" "---"
    printf "%s\n" "title: ${title}"
    printf "%s\n" "---"
    printf "%s\n" "${output}"
} > "$destfile"

更新2

使用 file 命令,输出文件似乎(无论出于何种原因)正在使用 ASCII text, with CRLF, LF line terminators

错误消息没有指向正确的行,但在我的 headers 之一(上面未显示)中,我输出了一个 Jekyll 变量,例如 {{url}}。看起来他们在前面的问题中不受支持。删除它解决了这个问题。