シェルスクリプトを使用してCURLヘッダーに変数を入れるには?

シェルスクリプトを使用してCURLヘッダーに変数を入れるには?

シェルスクリプトを使用してAPIを呼び出したいのですが、ヘッダーを正しく挿入できません。スクリプトに問題があります。よろしくお願いします。

シェルスクリプト:

#!/bin/bash
curl-H "権限付与: BasicABCDEFGHIJKLMNOPQRSTUVWXYZ" -H "コンテンツタイプ: application/xml" -X POST -i -d "" -o session.xml http://abcd:xxxx/api/auth/

セッション= `grep -i x-rest session.xml |head -1 |cut -d '' -f 2`

$セッションをエコーし​​ます。

セット-xxx
curl-H "X-RestSvcSessionId: ${session}" -X GET "http://abcd:xxxx/api/jobs"

出力:

<pre>
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5475    0  5475    0     0  43457      0 --:--:-- --:--:-- --:--:-- 43800

OGIyMDUxYTctNjMzNC00MjhjLWJiOTEtZjQ2YmMwZGY1NmY3

 -X GET http://a.b.c.d:xxxx/api/jobsjMzNC00MjhjLWJiOTEtZjQ2YmMwZGY1NmY3
</pre>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>

ベストアンサー1

問題はcurlgrepまたは++headで変数を設定するとtail最後に新しい行あなたの変数。

新しい行を削除するには、最後の行をcurl次のように設定します$session

curl -H "X-RestSvcSessionId: ${session//[$'\t\r\n ']}" -X GET  "http://a.b.c.d:xxxx/api/jobs"

これにより、新しい行とタブ(存在する場合)が削除されます。

私は同じエラーがあります:ここで確認してください

おすすめ記事