2012-04-27 50 views
0

我有一個腳本,它使用curl將文件發送到我們的第三方雲文件存儲。bash:將字符串注入字符串會增加額外的空間 r

我使用grep來拉出HTTP響應

看起來像這樣

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" 

,然後我得到它打印出像

網址 錯誤請求提供給我一個網址
'PUT /v1/MossoCloudFS100213=123-123-1233a-ss9\r/dp/file1.tar.gz' 

看到\ r只是惱人地注入了我的變量和/ dp /?

+2

您是否100%確定您在$ {StorageUrl}本身中沒有多餘的\ r? – Venge 2012-04-27 16:28:21

回答

2

我想你從web請求中獲得了$StorageUrl值,並且Web響應行以CRLF結尾(Web標準通常需要CRLF行結束)。 shell刪除了LF(換行符),但不是CR(\r,回車)。在使用URL之前,您可能需要自己照顧自己。