我正在尝试编写一个脚本来解析URL的输出,如果我将URL硬编码到curl命令中,一切都很好,但是当我尝试从数组添加URL时,我得到了一个语法错误。
这是剧本
#!/usr/bin/bash
hosts=(
room-f3185-dsp
room-c5180-dsp
room-f3187-dsp
room-f3183-dsp
)
for i in "${hosts[@]}"
url1=$(curl -d "action=login&userPassword=PASSWORD" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://$i)
url2=$(echo $url | sed 's/,/\n/g')
url3=$(echo $url2 | sed 's/:/ /g' | grep macAddress ./mactest | awk '{print $2,$3,$4,$5,$6,$7,$8}')
url4=$(echo $url3 | sed 's/ /:/g' | tr -d '"')
mac=$(echo $url4 | sed 's/.$//' | sed 's/.$//' |sed 's/.$//')
echo "------------------------------------------------" >> dspmac
echo $i >> dspmac
echo "Mac Address = "$mac >> dspmac
done
下面是我得到的错误,第10行:意外内标识"url1 =$(curl-d"操作=登录名和用户密码=密码"-H"内容类型附近出现语法错误:应用程序/x-www-格式-网址编码"-X POST $i)'
同样在url1行中,当我输入HTTP://时,它被突出显示为链接,但$i只是显示为标准文本
先谢了
如果我用完整的URL(http://room-f3185-dsp)替换脚本中的$i,效果会很好。我也尝试过将完整的URL作为主机放入数组中,但仍然得到相同的错误。
我也在不同的地方尝试了各种各样的引语。
1条答案
按热度按时间hs1rzwqc1#
如何添加
do
: