我是脚本新手。我想使用sed为传递的变量添加双引号。我编写了脚本文件,但没有插入双引号。我的脚本看起来像
#!/bin/bash
essid=$1
port=$2
sed -i -e "s/\(ssid=\).*/\1$1/" \
-e "s/\(key_mgmt=\).*/\1$2/" iwlist_details.txt
我想用ssid =“abcd”
替换ssid =“xyz”network={
ssid="xyz"
key_mgmt=WAP
proto=WPA2
pairwise=CCMP TKIP
group=CCMP TKIP
psk="hello123"
}
当我运行脚本时,我得到以下输出
#./myscrip.sh abc WAP iwlist_details.txt
network={
ssid=abcd
key_mgmt=WAP
proto=WPA2
pairwise=CCMP TKIP
group=CCMP TKIP
psk="hello123"
}
如何在“abcd”周围添加双引号?
由于 萨钦
答案 0 :(得分:1)
您没有使用双引号。 sed
应该如何知道你想要他们?要在双引号内使用双引号,请反斜杠:
sed -i -e "s/\(ssid=\).*/\1\"$1\"/" \
-e "s/\(key_mgmt=\).*/\1\"$2\"/" iwlist_details.txt
或在单引号内使用它们:
sed -i -e 's/\(ssid=\).*/\1"'"$1"'"/' \
-e 's/\(key_mgmt=\).*/\1"'"$2"'"/' iwlist_details.txt
我不确定哪一个你觉得更具可读性。