cat
我有一个脚本,它使用和将一些内容写入文件EOF
。虽然这个东西在 bash 脚本中工作,但如果我把它放在一个函数中它就不起作用。
工作代码:
cat << EOF | sudo tee /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
EOF
它是语法高亮(看起来不错);
不工作的代码:
function someFunctions {
cat << EOF | sudo tee /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
EOF
}
someFunctions
这个的语法高亮(看起来不太好);
我的编辑器(Atom)将所有内容显示为绿色,这意味着它失去了语法高亮,但我找不到问题所在。
我怎样才能解决这个问题?
EOF
here-doc 标记必须位于行首,或者缩进一个完整的 TAB 字符:我已经删除了
function
关键字,因为它已被弃用,cat
因为它没有增加任何价值。我还使用<<-'EOF'
了(而不是<<EOF
),以便去除前导 TAB 字符,并且不会针对变量和其他替换评估 here-doc 的内容。如果您想要变量替换,请不要引用EOF
,<<-EOF
而是使用。