是否有一个shell命令可以执行以下操作:
cp header page.html
markdown page.md >> page.html
cat footer >> page.html
(Markdown默认输出到stdout。)
一位同事建议
echo $(cat header) $(markdown page.md) $(cat footer) >> page.html
但是除了三个子壳和两只猫之外,这可能会让我赢得一个无用的猫和#34;奖励,它也剥离换行 - 这是不好的,特别是在<pre><code>
块。
我喜欢的是这样的东西(显然不起作用)
cat header $(markdown page.md) footer > page.html
我可以告诉cat使用子shell的输出来读取其中一个文件。理想情况下,无需设置任何临时文件,命名管道等。
答案 0 :(得分:6)
由于你只有一个子shell我会使用它:
markdown page.md | cat header - footer > page.html
-
参数中的cat
引用stdin,它由markdown
命令填充。
如果您有多个子shell,我建议使用解决方案anishane评论,进程替换:
cat header <(markdown page1.md) <(markdwon page2.md) footer > page.html
答案 1 :(得分:2)
应该这样做:
(cat header; markdown page.md; cat footer) > page.html