簡體   English   中英

在bash腳本中回顯引號

[英]echo quotes in bash script

我正在創建一個自動網絡配置腳本,並且在其中

#!/bin/bash
sudo rm /etc/default/ifplugd  
sudo echo "INTERFACES=""
HOTPLUG_INTERFACES="wlan0 eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"" > /etc/default/ifplugd

但是在查看/ etc / default / ifplugd時缺少一些引號

INTERFACES=
HOTPLUG_INTERFACES=wlan0 eth0
ARGS=-q -f -u0 -d10 -w -I
SUSPEND_ACTION=stop

如何配置腳本,使其包含第一個和最后一個回聲之間的引號?

怎么樣:

sudo sh -c 'cat <<END >/etc/default/ifplugd
INTERFACES=""
HOTPLUG_INTERFACES="wlan0 eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"
END
'

您不需要顯式地rm>重定向將在寫入新內容之前截斷文件。

您需要使用\\前綴轉義"標記,如下所示:

#!/bin/bash
sudo rm /etc/default/ifplugd  
sudo echo "INTERFACES=\"\"
HOTPLUG_INTERFACES=\"wlan0 eth0\"
ARGS=\"-q -f -u0 -d10 -w -I\"
SUSPEND_ACTION=\"stop\"" > /etc/default/ifplugd

Heredoc提供了一種優雅的解決方案:

sudo tee << EOF /etc/default/ifplugd
INTERFACES=""
HOTPLUG_INTERFACES="wlan0 eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"
EOF 

這樣,您不必手動用引號將每個""來,也不必刪除ifplugd文件,因此在創建文件后無需重置權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM