[英]Parse curl response to variable and use it in curl
我有以下腳本:
#!/bin/bash
TOKEN=$(curl -isX POST 'http://localhost:3005/auth/tokens' \
-H 'Content-Type: application/json' \
-d '{
"name": "test@test.de",
"password": "1234"
}' | grep X-Subject-Token | sed "s/X-Subject-Token: //g")
echo $TOKEN
curl --trace test.txt -X POST "http://localhost:3005/v1/users" \
-H "Content-Type: application/json" \
-H "X-Auth-token: $TOKEN" \
-d '{
"user": {
"username": "alice",
"email": "alice@test.com",
"password": "test"
}
}'
命令echo $TOKEN
正在打印正確的結果(類似於 35be3d05-7f80-4b11-ad20-7a7110e9d3a7)。 從最后一個 curl 請求中,我從 curl 收到以下錯誤:
curl: (52) Empty reply from server
如果我寫在最后一個 curl 請求TOKEN="35be3d05-7f80-4b11-ad20-7a7110e9d3a7"
該請求正在運行。 所以我猜 TOKEN 變量有問題。
親切的問候
編輯: Output 來自declare -p TOKEN
:
"eclare -- TOKEN="6770806a-1230-4f64-b519-1841e9deb5f1
我不得不刪除回車。 感謝@chepner!
解決方案:
TOKEN=$(curl -isX POST 'http://localhost:3005/auth/tokens' \
-H 'Content-Type: application/json' \
-d '{
"name": "test@test.de",
"password": "1234"
}' | grep X-Subject-Token | sed "s/X-Subject-Token: //g" | tr -d '\r')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.