Curl,从阵列添加主机名

qij5mzcb  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(225)

我正在尝试编写一个脚本来解析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作为主机放入数组中,但仍然得到相同的错误。
我也在不同的地方尝试了各种各样的引语。

hs1rzwqc

hs1rzwqc1#

如何添加do

for i in "${hosts[@]}"
do
    ...
done

相关问题