嗨我想在shell脚本中使用curl,如下所示,但我无法替换CURL中的变量$ line.请建议
while read line
do
echo "allowing mac $line"
curl -X POST -d '{"src-mac": "$line"}' http://localhost:8080/wm/firewall/rules/json
curl -X POST -d '{"dst-mac": "$line"}' http://localhost:8080/wm/firewall/rules/json
done < /home/floodlight/allowedmacs
Run Code Online (Sandbox Code Playgroud)
单引号中没有变量替换.切换到扩展的两倍,如下所示:
curl -X POST -d '{"src-mac": "'"$line"'"}' http://localhost:8080/wm/firewall/rules/json
curl -X POST -d '{"dst-mac": "'"$line"'"}' http://localhost:8080/wm/firewall/rules/json
Run Code Online (Sandbox Code Playgroud)
或者你可以在整个事物周围使用双引号并逃避内部的:
curl -X POST -d "{\"src-mac\": \"$line\"}" http://localhost:8080/wm/firewall/rules/json
curl -X POST -d "{\"dst-mac\": \"$line\"}" http://localhost:8080/wm/firewall/rules/json
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,当$line你想要扩展时,不能在单引号内.