Bash의 내 출력은 다음 curl
과 같습니다.
object(\Response\)#1399 (3) {
["httpResponse"]=>
object(GuzzleHttp\Psr7\Response)#1084 (6) {
["reasonPhrase":"GuzzleHttp\Psr7\Response":private]=>
string(2) "OK"
["statusCode":"GuzzleHttp\Psr7\Response":private]=>
int(200)
["headers":"GuzzleHttp\Psr7\Response":private]=>
array(11) {
....
....
....
....
["status"]=>
string(2) "ok"
}
}
내 코드는 다음과 같습니다
while read ID; do
curl -X -d "http://localhost/new.php?media_id="$ID"&submit=Submit"
done < ~/ids.txt
나는 또한 이것을 추가했습니다 :
curl -s -X -d "http://localhost/new.php?media_id="$ID"&submit=Submit" | grep -c 'string(2) "ok"'
출력은 입니다 1
. 모든 출력을 계산하고 예제를 보여주고 싶습니다.Success : 12
답변1
다음 방법으로 이를 수행할 수 있습니다 grep -c
.
f=0
s=0
while read ID; do
var=$(curl -X -d "http://localhost/new.php?media_id="$ID"&submit=Submit")
grep -q 'string(2) "ok"' <<<"$var" && ((s++))
grep -q 'string(2) "notok"' <<<"$var" && ((f++))
echo "$var"
done < ~/ids.txt
echo "Success : $s"
echo "Failed : $f"