首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash:从独立于2的1个循环中获取结果

Bash:从独立于2的1个循环中获取结果
EN

Stack Overflow用户
提问于 2019-02-25 22:37:17
回答 1查看 29关注 0票数 1

关于在bash脚本中使用循环,我有一些问题。我需要发送多个不同值的POST请求。所以我使用了循环。在1次循环中,我更改了profile的名称,只需在其上添加从1到500的数字

代码语言:javascript
运行
复制
#!/bin/bash
token="Authorization: Bearer h-bCxY3nCJD_Oro_aQE15soo-XFewv1bzsArbd46iJrH1t5Fxa3TLYaQ3Q"
url="http://ad44fcfa01aad11e98c201.amazonaws.com/api/v0.1/scanprofiles"
q=500

name=3_Ubuntu_internal

for ((i = 0; i < q; i++))
 do
    data='{"target":{"scan_type":"internal","ip_range":"10.142.0.2-10.142.0.5","ports":"1042"},"name":"'$name$i'","run_immediately":"False"}'
    echo "${data}"
    curl -X POST $url -H 'Content-Type: application/json' -H "$token" -d "$data"
 done

它可以创建500个配置文件,默认参数为IP和端口。但是,我需要将默认端口从1042更改为阵列中的1042到1237。我尝试在existing中创建另一个循环,但没有得到我想要的结果。A.e.对于500个配置文件中的每个配置文件,首先应用1042端口,然后应用1043端口,依此类推。我想创建具有1042端口的配置文件1,配置文件2- 1043,依此类推。当然,配置文件的数量大于端口的数量,从1042到1237,但这是可以的,端口可以再次重复

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-25 22:50:14

您可以尝试如下所示:

为起始端口添加一个变量:

代码语言:javascript
运行
复制
port=1042

并在循环中递增:

代码语言:javascript
运行
复制
for ((i = 0; i < q; i++))
 do
    data='{"target":{"scan_type":"internal","ip_range":"10.142.0.2-10.142.0.5","ports":"'${port}'"},"name":"'$name$i'","run_immediately":"False"}'
    echo "${data}"
    curl -X POST $url -H 'Content-Type: application/json' -H "$token" -d "$data"
    port=$((port+1))
 done

这样,每个下一个端口都将是前一个端口的增量。

如果您不能通过端口1237 (例如),您可以在循环内的port=$((port+1))后面添加以下if:

代码语言:javascript
运行
复制
if [ "${port}" -eq "1237" ];then
    port=1042
fi

..。这将重置计数器并再次从1042开始端口递增。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54868553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档