Используя curl в Ubuntu, я пытаюсь получить версию Jenkins, вдохновленную:
https://wiki.jenkins.io/display/JENKINS/Remote+access+API
В скрипте bash я делаю:
VERSION=$(curl -k -i -X GET --insecure --silent --header \"Authorization: Bearer $TOKEN \" $URL | grep -Fi X-Jenkins: | awk '{print $2}')
echo "__A__[${VERSION}]__B__"
Но когда я запускаю скрипт, я получаю:
]__B__2.89.2
По какой-то причине префикс: __A__[
проглатывается, а суффикс 1014 * превращается в префикс .
Я также попытался обрезать вывод:
VERSION=$(curl -k -i -X GET --insecure --silent --header \"Authorization: Bearer $TOKEN \" $URL | grep -Fi X-Jenkins: | awk '{print $2}' | sed -e 's/^[ \t]*//')
Но это дает тот же результат.
Как предложено ниже, я также попробовал:
echo '__A__['"${VERSION}"']__B__'
Но все равно дает тот же / неправильный результат.
Несколько других вещей, которые я пробовал (дает тот же результат)
Тот же / неправильный вывод
VERSION=$(curl -k -i -X GET --insecure --silent --header \"Authorization: Bearer $TOKEN \" $URL | grep -i X-Jenkins: | awk '{print $2}')
echo '__A__['"${VERSION}"']__B__'
Тот же / неправильный вывод
VERSION=$(curl -k -i -X GET --insecure --silent --header \"Authorization: Bearer $TOKEN \" $URL | grep X-Jenkins: | awk '{print $2}')
echo '__A__['"${VERSION}"']__B__'
На основании приведенного ниже предложения, которое я сейчас попробовал:
echo $VERSION|od -ax
Что дает:
0000000 2 . 8 9 . 2 cr nl
2e32 3938 322e 0a0d
0000010
Если сравнить это с:
VERSION_TEMP="2.89.2"
echo $VERSION_TEMP|od -ax
Я получаю:
0000000 2 . 8 9 . 2 nl
2e32 3938 322e 000a
0000007
Похоже, что именно кри в VERSION var вызывает проблему (не уверен, как это объясняет все изменения префикса / суффикса, как описано выше).
РЕШЕНО: Основываясь на данных Ромео, я теперь начал работать с добавлением |tr -d '\r'
:
VERSION=$(curl -k -i -X GET --insecure --silent --header \"Authorization: Bearer $TOKEN \" $URL | grep X-Jenkins: | awk '{print $2}'|tr -d '\r')