如何使用“EOL”和 bash 重定向将代码片段 pip 到使用“cat”的文件中?

如何使用“EOL”和 bash 重定向将代码片段 pip 到使用“cat”的文件中?

我想将一段代码通过管道传输到一个名为$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

相关内容