【发布时间】:2016-04-13 18:13:39
【问题描述】:
好的。这让我慢慢发疯。 我已经为我的一个项目在 Travis 上设置了 CI。我正在运行一些 JUnit 测试,我想将测试结果上传到我自己的服务器,这样浏览起来就容易多了。
基本上,我想做的就是这样称呼:
curl -H 'Authorization: Token someToken' -X POST http://my.server.com -F filedata=@file.txt
这就是我在 .travis.yml 文件中尝试做的事情。
after_script:
- curl -H 'Authorization: Token someToken' -X POST http://my.server.com -F filedata=@file.txt
问题是,对于上面的行,我收到一个如下所示的错误:
$ {:"curl -H '\"Authorization"=>"Token someToken\"' -X POST http://my.server.com -F filedata=@file.txt"}
/home/travis/build.sh: line 45: Token someToken"' -X POST http://my.server.com -F filedata=@file.txt}: No such file or directory
我了解到在 YAML 中冒号代表一对键值,我发现可以只使用引号来转义冒号。
嗯 - 这是我被困的地方。我尝试以许多不同的方式应用这些引号,但不知何故,每次我都会再次遇到相同的错误。
例如:
curl -H '"Authorization: Token someToken"'
curl -H "\"Authorization: Token someToken\""
curl -H "'Authorization: Token someToken'"
curl -H '"Authorization": Token someToken'
我觉得自己很愚蠢,我知道解决这个问题可能很简单,但我已经感受到了“在转义引号时转义引号”的事情,如果有人能指出我正确的方向,我将不胜感激。
当我尝试关注这些问题以解决我的问题时,我还链接到这些问题:
【问题讨论】:
-
可以
- "curl -H 'Authorization: Token someToken' -X POST http://my.server.com -F filedata=@file.txt"吗? -
不幸的是,我遇到了同样的错误。此外,在 Travis 日志文件中,引号似乎被忽略了。
-
另一个可能不是首选的选项是使用带有该命令的 shell 脚本(或生成它,如果适用)并运行它。