私が作成したスクリプトは次のとおりです。
for i in `cat cain.txt`
do
uuid=$(curl -X POST -H "ACCEPT-LANGUAGE:en" -H "Content-Type:application/json" -H "Accept: application/json" -d '{"username":"TheUserName"}' H)
> final.txt
fuid=$(echo "$uuid" | sed -nE 's/.*"serviceUuid":"(.*)","user.*/\1/p' >> final.txt)
eval $fuid
echo $fuid
service_uuid=$(cat final.txt)
password=$(sed -n 1p cain.txt)
echo $service_uuid
echo $password
login=$(curl -X POST -H "ACCEPT-LANGUAGE:en" -H "Content-Type: application/json;charset=utf-8" -H "Accept-Encoding:gzip,deflate" -H "Accept: application/json" -H "Connection: keep-alive" -d '{"serviceUuid":"${service_uuid}","password":"${password}"}' HereTheUrl)
echo "$login"
if [ "$login" = "STATUS_OK" ]
then
echo "Password: $password"
break
else
echo "Trying: $password"
fi
done
実行すると、サーバーの応答は次のようになります。
{"status":{"code":"NOT_AUTHENTICATED","message":"HereTheUrl"},"body":{}}
この問題をどのように解決しますか?
(間違ったパスワードへの応答は「NOT_AUTHENTICATED」ではなく「ERROR」でなければなりません)
答え1
この問題を解決しました。構文エラーが原因で問題が発生します。
エラーは「and」の場所に関連しています。 「in」だけを変更するだけです。
login=$(curl -X POST -H "ACCEPT-LANGUAGE:en" -H "Content-Type: application/json;charset=utf-8" -H "Accept-Encoding:gzip,deflate" -H "Accept: application/json" -H "Connection: keep-alive" -d "{"serviceUuid":"${service_uuid}","password":"${password}"}" HereTheUrl)
そして
uuid=$(curl -X POST -H "ACCEPT-LANGUAGE:en" -H "Content-Type:application/json" -H "Accept: application/json" -d "{"username":"TheUserName"}"