2012-04-27 18 views
0

curlを使用してサードパーティのクラウドファイルストレージにファイルを送信するスクリプトがあります。bash:変数を文字列に追加すると、余分な文字が追加されます。

私は

この

curl -X PUT -T media/file.tar.gz -D - \ 
    -H "ETag: ${md5}" \ 
    -H "Content-Type: application/x-gzip" \ 
    -H "${AuthToken}" \ 
    -H "X-Object-Meta-Date: ${today}" \ 
    "${StorageUrl}/dp/file1.tar.gz" 

のように見え、その後、私は

のように出力したURL 上の不正な要求を取得し、HTTP応答で私に提供されたURLを引き出すためにはgrepを使用しています
'PUT /v1/MossoCloudFS100213=123-123-1233a-ss9\r/dp/file1.tar.gz' 

私の変数と/ dp /?の間にぎこちなく注入された\ rを見てください。

+2

あなたは$ {StorageUrl}自体に無関係なものはないと100%確信していますか? – Venge

答えて

2

Webリクエストから$StorageUrlの値を得て、WebレスポンスラインがCRLFで終わったと思います(Web標準では一般にCRLFラインの終了が必要です)。シェルはLF(改行)を削除しましたが、CR(\r、改行)は削除しませんでした。おそらく、URLを使用する前に自分自身で世話をする必要があります。

関連する問題