Bash heredoc界定终止符缩进
即时文档(heredoc)的界定符是可以自定义的,但一般习惯上使用EOF。
界定符的终止符有一个限制,终止符必须放到行首,后面也不能有任何空白,有时候不缩进会很不美观。
这时候可以这样来使终止符EOF可以使用TAB缩进:
1 | echo |
在设定终止符时加一个横线,也就是使用<<-
但这里还有一个坑,即使是这样写,EOF缩进时也只能使用TAB字符而不能使用任何其他空白字符。
我的vim配置里使用了expandtab来将tab自动替换为空格,因此踩上了这个大坑,无论如何都提示错误:
1 | warning: here-document at line xxx delimited by end-of-file (wanted \`EOF') |
这时候只要输入真正的TAB字符就可以了,Ctrl+V+TAB
,windows下要用Ctrl+Q+TAB
===
[erq]