Bash 回声-e“---\n、 ";对于jekyll标头,生成YAML异常

Bash 回声-e“---\n、 ";对于jekyll标头,生成YAML异常,bash,echo,jekyll,Bash,Echo,Jekyll,我编写了一个脚本,自动将ipython笔记本转换为markdown,在将输出保存到文件之前,我通过在bash中执行以下操作添加了一个Jekyll头: echo-e“--\n标题:$title\n--\n\n$(cat$destfile)”>“$destfile” 问题在于,每当我添加Jekyll头时,它都会生成一个YAML异常: 错误:YAML异常读取notebook.md:():在分析第2行第1列的块映射时未找到所需的键 使用sublime查看时,输出如下所示,它与预期的Jekyll标题完全

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

echo-e“--\n标题:$title\n--\n\n$(cat$destfile)”>“$destfile”

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

错误:YAML异常读取notebook.md:():在分析第2行第1列的块映射时未找到所需的键

使用sublime查看时,输出如下所示,它与预期的Jekyll标题完全相同:

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

### Note

Please view the README
我一删除头文件,Jekyll就可以编译了。如果我手动创建另一个具有完全相同的头的Jekyll文件,它就可以正常工作。这是怎么回事?这是某种字符编码问题吗

更新 尝试使用
printf
时也会发生同样的情况:

{
    printf "%s\n" "---"
    printf "%s\n" "title: ${title}"
    printf "%s\n" "---"
    printf "%s\n" "${output}"
} > "$destfile"
更新2
使用
文件
命令,显示(无论出于何种原因)输出文件使用的是
ASCII文本,带有CRLF、LF行终止符
错误消息没有指向正确的行,但在我的一个标题(上面未显示)中,我输出了一个Jekyll变量,如
{url}
。看起来他们在前线不受支持。删除此选项修复了此问题