您好我正在尝试在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
答案 0 :(得分:7)
单引号中没有变量替换。切换到扩展的两倍,如下所示:
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
或者你可以在整个事物中使用双引号并逃避内在的:
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
无论哪种方式,如果你希望它扩展到$line
,就不能在单引号内。