如果在文件名中找到空间,则curl命令失败

问题描述 投票:0回答:1

我想使用CURL命令将文件我的测试Live.ipa上传到服务器上>

如果我将文件(我的测试Live.ipa)重命名为MytestLive.ipa 没有任何空格

可以正常工作
   curl --request POST -T "/Users/durai/Documents/Test/MytestLive.ipa" -v --url  "https://testserver.com?requestid=1&token=hjasdfhkjasgnjyfsadg"

但是如果文件名中有空格,如下面的脚本中所示,则出现以下错误

   curl --request POST -T "/Users/durai/Documents/Test/My test Live.ipa" -v --url  "https://testserver.com?requestid=1&token=hjasdfhkjasgnjyfsadg"

卷曲:找不到命令

我尝试使用反斜杠转义空格,如下所示,并且抛出相同的错误

   curl --request POST -T "/Users/durai/Documents/Test/My\ test\ Live.ipa" -v --url  "https://testserver.com?requestid=1&token=hjasdfhkjasgnjyfsadg"

同样,我尝试对该空间进行url编码,但遇到相同的错误。

   curl --request POST -T "/Users/durai/Documents/Test/My%20test%20Live.ipa" -v --url  "https://testserver.com?requestid=1&token=hjasdfhkjasgnjyfsadg"

感谢您提供任何解决空间问题的帮助

P.S: -我正在azure devops CI / CD管道中运行bash脚本。 -我可以在上传之前重命名文件,但我打算保持名称不变。 -我在本地Mac终端中使用CURL命令在文件名中带有空格,它工作正常,但在Azure Devops中运行bash脚本时似乎出现了问题。

   curl --request POST -T "/Users/durai/Documents/Test/My test Live.ipa" -v --url  "https://testserver.com?requestid=1&token=hjasdfhkjasgnjyfsadg"
            

我想使用CURL命令将我的测试Live.ipa文件上传到服务器,如果我将文件(我的测试Live.ipa)重命名为MytestLive.ipa而没有任何空间,则它可以正常卷曲–request POST -T“ ...

curl azure-devops continuous-integration filenames spaces
1个回答
0
投票

Azure可能正在解释命令,并且正在删除引号和反斜杠。您可以尝试将反斜杠加倍或三倍,也可以尝试以下其中之一:

\"/Users/durai/Documents/Test/My test Live.ipa\"  
\\"/Users/durai/Documents/Test/My test Live.ipa\\"  
\\\"/Users/durai/Documents/Test/My test Live.ipa\\\"  
\""/Users/durai/Documents/Test/My test Live.ipa\""  
\\""/Users/durai/Documents/Test/My test Live.ipa\\""  
\\\""/Users/durai/Documents/Test/My test Live.ipa\\\""  
"/Users/durai/Documents/Test/My\\ test\\ Live.ipa"  
"/Users/durai/Documents/Test/My\\\ test\\\ Live.ipa"  
© www.soinside.com 2019 - 2024. All rights reserved.