是否有单个shell命令将执行以下操作:
cp header page.html
markdown page.md >> page.html
cat footer >> page.html
Run Code Online (Sandbox Code Playgroud)
(默认情况下Markdown输出到stdout.)
一位同事建议
echo $(cat header) $(markdown page.md) $(cat footer) >> page.html
Run Code Online (Sandbox Code Playgroud)
但除了三个子壳和两只猫,这可能会让我赢得"无用的猫"奖,它也会剥夺换行线 - 这是不好的,特别是在<pre><code>街区.
我想要的是这样的东西(显然不起作用)
cat header $(markdown page.md) footer > page.html
Run Code Online (Sandbox Code Playgroud)
我可以告诉cat使用子shell的输出来读取其中一个文件.理想情况下,无需设置任何临时文件,命名管道等.
由于你只有一个子shell我会用它:
markdown page.md | cat header - footer > page.html
Run Code Online (Sandbox Code Playgroud)
的-在catPARAMS是指标准输入,其由填充markdown命令.
如果您有多个子壳,我建议使用解决方案anishane,过程替换:
cat header <(markdown page1.md) <(markdwon page2.md) footer > page.html
Run Code Online (Sandbox Code Playgroud)