【发布时间】:2015-04-03 22:20:23
【问题描述】:
有没有办法包装所有这些写入(双关语)不仅```在 temp.md 中
echo "\`\`\`" && cat temp.txt && echo "\`\`\`" > temp.md
【问题讨论】:
-
问题与它所标记的任何标签有什么关系?
-
很抱歉,从我要发布的问题中回收!
有没有办法包装所有这些写入(双关语)不仅```在 temp.md 中
echo "\`\`\`" && cat temp.txt && echo "\`\`\`" > temp.md
【问题讨论】:
使用单引号更简单(不需要反斜杠):
{ echo '```' && cat temp.txt && echo '```'; } >temp.md
或者,如果您想更好地控制输出格式,printf 很方便:
printf '```\n%s\n```\n' "$(cat temp.txt)" >temp.md
来自man bash:
用单引号括起来的字符会保留引号内每个字符的字面值。单引号可能 不会出现在单引号之间,即使前面有反斜杠。
换句话说,您可以将任何内容放在单引号内,除了单引号,它将保持不变。无需转义。
相比之下,shell 处理双引号内的字符。来自man bash:
用双引号括起来的字符会保留引号内所有字符的字面值,$ 除外, `, \,并且,当启用历史扩展时,!。
例如,在双引号内,shell 将执行变量替换、命令替换和算术扩展。除非您希望这些事情发生,否则不要使用双引号。
【讨论】:
找到了!
(echo "\`\`\`" && cat temp.txt && echo "\`\`\`") > temp.md
【讨论】: