応答から1つのserviceUuidを取得して使用する、シェルスクリプトで小さなスクリプトを作成しようとしています。サーバーの応答をfinal.txtというファイルに出力するだけです。「serviceUuid」の後に値を抽出する必要があります。
これはスクリプトです:
uuid=$(curl -X POST -H "ACCEPT-LANGUAGE:en" -H "Content-Type: application/json" -H "Accept: application/json" -d {"username":"HereThereIsTheUsername"} Here there is the url )
echo $uuid >> final.txt
これは応答です:
{"status":{"code":"STATUS_OK","message":"ServiceUUID sent successfully via..."},"body":{"data":{"userApps":{},"username":"HereTheUsername","fullName":"NameOfTheAccountPossessor","lang":"sq","blocked":false,"lastLogin":"2016-10-10T17:19:22","passwordResetUuid":"6147dc32-b72e-450a-8084-2fdb5319a931","userAccessLevel":5,"countDownSeconds":0,"serviceUuid":"7260276c-5c3f-41d3-9329-3603acecb7e5","userAttributes":{},"labelMap":{},"id":"APPUSER00000012","someLabel":"NameOfTheOrganisation"}}}
それで、誰かが私が価値を引き出すのを手伝ってくれるでしょうか?
ここで、「serviceUuid」の後に値を抽出する必要があります
したがって、変数$uuid
これが含まれています:
echo "$uuid"
{"status":{"code":"STATUS_OK","message":"ServiceUUID sent successfully via..."},"body":{"data":{"userApps":{},"username":"HereTheUsername","fullName":"NameOfTheAccountPossessor","lang":"sq","blocked":false,"lastLogin":"2016-10-10T17:19:22","passwordResetUuid":"6147dc32-b72e-450a-8084-2fdb5319a931","userAccessLevel":5,"countDownSeconds":0,"serviceUuid":"7260276c-5c3f-41d3-9329-3603acecb7e5","userAttributes":{},"labelMap":{},"id":"APPUSER00000012","someLabel":"NameOfTheOrganisation"}}}
...そしてあなたのみserviceUuid
値が必要な場合、私はこれを行います:
echo "$uuid" | sed -nE 's/.*"serviceUuid":"(.*)","user.*/\1/p'
7260276c-5c3f-41d3-9329-3603acecb7e5
あなたの場合、次のようになります。
echo "$uuid" | sed -nE 's/.*"serviceUuid":"(.*)","user.*/\1/p' >> final.txt
...ファイルに追加するにはfinal.txt
sed --version
sed (GNU sed) 4.2.2
jq はJSON解析ツールです。あなたはこれを行うことができます:
uuid=$(curl ...)
service_uuid=$(jq -r '.body.data.serviceUuid' <<<"$uuid")
echo "$service_uuid"
7260276c-5c3f-41d3-9329-3603acecb7e5