![如何使用“EOL”和 bash 重定向将代码片段 pip 到使用“cat”的文件中?](https://linux22.com/image/125419/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E2%80%9CEOL%E2%80%9D%E5%92%8C%20bash%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%B0%86%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%20pip%20%E5%88%B0%E4%BD%BF%E7%94%A8%E2%80%9Ccat%E2%80%9D%E7%9A%84%E6%96%87%E4%BB%B6%E4%B8%AD%EF%BC%9F.png)
我想将一段代码通过管道传输到一个名为$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