Имею следующее:
VERSION=$(curl -Is https://qa.me.com.br | sed -n '/^x-powered-by:/Ip' | sed '/x-powered-by:/I s/x-powered-by: //Ig')
Ожидаемый результат переменной (но в нем есть еще один символ, который нарушил мой результат):
MEWeb - QA - 267_4_2548
После этого я показываю следующее:
echo "##teamcity[progressMessage 'Version is $VERSION']"
Ожидается (без "*"):
*##teamcity[progressMessage 'Version is MEWeb - QA - 267_4_2548']
Действительный:
']##teamcity[progressMessage 'Version is MEWeb - QA - 267_4_2548
Я не знаю, что мешает моему результату. Спасибо за помощь и извините за мой английский!
Если вы сделаете printf '<%q>\n' "$VERSION"
, вы увидите \r
(возврат каретки) в конце.
Ну, если подумать, этот обман говорит «возврат каретки», но на самом деле о «переводе строки» - тем не менее, ответы там также включают удаление возврата каретки.
В ответе есть возврат каретки. Когда вы получите ВЕРСИЮ, поместите ее в файл. echo $ VERSION> test.txt
Теперь, чтобы увидеть скрытые символы, используйте: кошка -v test.txt
Вот увидишь: MEWeb - Контроль качества - 267_4_2548 ** ^ M **
Вам нужно справиться с этим персонажем, который вызывает проблемы.
Добавлять
| tr -d '\r'
до конца команды curl
(непосредственно перед ")").
Символ CR в конце переменной $ VERSION ...