Bash:从独立于 2 的 1 循环中获取结果
Bash: get result from 1 loop independent from 2
我对在 bash 脚本中使用循环有一些疑问。我需要发送多个具有不同值的 POST 请求。所以我使用了循环。
在 1 个循环中,我更改了配置文件的名称,只需将数字从 1 添加到 500
#!/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
它起作用了,使用默认的 IP 和端口参数创建了 500 个配置文件。但是后来我需要将默认端口从 1042 更改为数组中的一个,从 1042 到 1237。我尝试在现有的内部创建另一个循环,但得到的结果并不完全是我想要的。 A.e。对于 500 个配置文件中的每一个,首先应用 1042 端口,然后是 1043 端口,依此类推。我想创建具有 1042 端口的配置文件 1、配置文件 2 - 1043 等等。当然配置文件的数量更多的端口数量从 1042 到 1237 但没关系,端口可以再次重复
您可以尝试这样的操作:
为起始端口添加一个变量:
port=1042
并在循环内递增它:
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:
if [ "${port}" -eq "1237" ];then
port=1042
fi
...这将重置计数器并再次从 1042 开始端口递增。
我对在 bash 脚本中使用循环有一些疑问。我需要发送多个具有不同值的 POST 请求。所以我使用了循环。 在 1 个循环中,我更改了配置文件的名称,只需将数字从 1 添加到 500
#!/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
它起作用了,使用默认的 IP 和端口参数创建了 500 个配置文件。但是后来我需要将默认端口从 1042 更改为数组中的一个,从 1042 到 1237。我尝试在现有的内部创建另一个循环,但得到的结果并不完全是我想要的。 A.e。对于 500 个配置文件中的每一个,首先应用 1042 端口,然后是 1043 端口,依此类推。我想创建具有 1042 端口的配置文件 1、配置文件 2 - 1043 等等。当然配置文件的数量更多的端口数量从 1042 到 1237 但没关系,端口可以再次重复
您可以尝试这样的操作:
为起始端口添加一个变量:
port=1042
并在循环内递增它:
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:
if [ "${port}" -eq "1237" ];then
port=1042
fi
...这将重置计数器并再次从 1042 开始端口递增。