有没有办法包装所有这些写(双关语)不仅```在temp.md
echo "\`\`\`" && cat temp.txt && echo "\`\`\`" > temp.md
答案 0 :(得分:2)
使用单引号更简单(不需要反斜杠):
{ echo '```' && cat temp.txt && echo '```'; } >temp.md
或者,如果您希望更好地控制输出格式,printf
很方便:
printf '```\n%s\n```\n' "$(cat temp.txt)" >temp.md
来自man bash
:
用单引号括起字符可保留引号中每个字符的字面值。单引号可以 单引号之间不会出现,即使前面有反斜杠。
换句话说,您可以将任何内容放在单引号内,但单引号除外,它将保持不变。不需要逃脱。
相比之下,shell处理双引号内的字符。来自man bash
:
用双引号括起字符会保留引号内所有字符的字面值,但$除外, ` \,并且,当启用历史记录扩展时,!。
例如,在双引号内,shell将执行变量替换,命令替换和算术扩展。除非你想要发生这些事情,否则不要使用双引号。
答案 1 :(得分:0)
发现它!
(echo "\`\`\`" && cat temp.txt && echo "\`\`\`") > temp.md