Команда curl для получения пути артефакта из circleci не работает, если URL содержит &
Я пытаюсь выполнить команду curl, как это, чтобы получить путь apk от circleci
curl -u $CIRCLE_API_KEY: https://circleci.com/api/v1.1/project/github /<username>/<projectname>/latest/artifacts?branch=develop | grep -o 'https://[^"]*' > artifacts.txt
это возвращается
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1229 100 1229 0 0 2063 0 --:--:-- --:--:-- --:--:-- 2065
он работает нормально, и URL-адрес, как путь к apk, то есть https://123-67792073-gh.circle-artifacts.com/0/apks/.apk идет в artifacts.txt
Однако, если я добавлю "&filter=success" в конце URL-адреса curl, он не будет записывать в artifacts.txt и не будет выходить из команды.
curl -u $CIRCLE_API_KEY: https://circleci.com/api/v1.1/project/github/<username>/<projectname>/latest/artifacts?branch=develop&filter=success | grep -o 'https://[^"]*' > artifacts.txt
возвращается
[1] 43348
arsinha$ [ {
"path" : "apks/<apkname>.apk",
"pretty_path" : "apks/<apkname>.apk",
"node_index" : 0,
"url" : "https://123-67792073-gh.circle-artifacts.com /0/apks/<apkname>.apk"
},]
Он не выходит, так как я должен нажать Ctrl + C, чтобы выйти. Любая причина для этого, почему это происходит, когда к URL-адресу curl добавлено "&filter=success"
1 ответ
Вам нужно заключить URL в кавычки, чтобы оболочка не интерпретировала &
как запрос, чтобы поместить команду в фоновом режиме.
например
curl -u $CIRCLE_API_KEY: "https://circleci.com/api/v1.1/project/github/<username>/<projectname>/latest/artifacts?branch=develop&filter=success" | grep -o 'https://[^"]*' > artifacts.txt