我想将一段代码通过管道传输到一个名为$x
.
然而,我在 处收到语法错误<<--
。
代码
cat > "$x" <<-- EOF
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
#auto lo wlan0
iface lo inet loopback
iface eth0 inet manual
allow-hotplug wlan0
#iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface $interface inet static
address 192.168.50.5
netmask 255.255.255.0
network 192.168.50.0
broadcast 192.168.50.255
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
EOF
答案1
cat < "$x" <<-- EOL
我不认为这是语法错误,它只是被视为由字符串-
(这里的文档只需要一个可选的破折号),后跟EOL
作为 的正常参数cat
。换句话说,它与
cat EOL < "$x" <<--
这与以下相同
cat EOL <<--
因为您将输入重定向到cat
两次。后一个生效,但cat
不会尝试stdin
在这里读取它,因为它也给出了(它认为是)一个文件名。
我想你想要的是
cat > "$x" <<-EOF
blah
EOF