我有一个使用curl将文件发送到第三方云文件存储的脚本。
我正在使用grep来提取一个在http响应中提供给我的URL
看起来像这样
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 \ n在我的变量和/ dp /?
之间注入了令人烦恼的事情答案 0 :(得分:2)
我猜您从Web请求获得$StorageUrl
值,并且Web响应行以CRLF结束(Web标准通常需要CRLF行结尾)。 shell为你删除了LF(换行符),但没有删除CR(\r
,回车)。在使用URL之前,您可能需要自己处理。