У меня есть случай, когда я хочу отправить пакет запросов. Мой текущий скрипт отправляет запрос последовательно, но я хочу иметь возможность отправить пакет запросов (все сразу) и ждать ответа (например, если я введу 10 в качестве количества запросов - все 10 должны быть отправлены все вместе). Я не уверен, как мне этого добиться, используя bash и curl. Любые идеи будут оценены.
#!/bin/bash
CURL="/usr/bin/curl"
echo -n "how many times you want to run the request: "
read erc
ERC="$erc"
#count=1;
total_connect=0
total_start=0
total_time=0
echo " Time_Connect Time_startTransfer Time_total HTTP_Code ";
#while [ $count -le $ERC ]
for ((i=1;i<=$ERC;i+=1)); do
result=`$CURL -k -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}:%{http_code} -H "Accept: application/xml" -H "Accept: text/xml" -H "Accept: application/json" -H "Accept: application/cbor" "http://google.com"`
echo $result;
var=$(echo $result | awk -F":" '{print $1, $2, $3, $4}')
set -- $var
total_connect=`echo "scale=6; $total_connect + $1" | bc`;
total_start=`echo "scale=6; $total_start + $2" | bc`;
total_time=`echo "scale=6; $total_time + $3" | bc`;
#count=$((count+1))
done
echo "URL executed is http://google.com"
echo "HTTP CODE of all request is $4"
echo "average time connect: `echo "scale=6; $total_connect/$ERC" | bc`";
echo "average time start: `echo "scale=6; $total_start/$ERC" | bc`";
echo "average Totaltime taken: `echo "scale=6; $total_time/$ERC" | bc`";