Если я правильно вас понимаю, ваш вопрос касается того, как передать выходные данные сценария оболочки в переменную, которая будет использоваться другими задачами? Если это так, вы можете изменить заголовок вопроса на что-то вроде «Azure конвейер DevOps - передача вывода сценария оболочки в переменные», чтобы помочь другим найти ответчика.
В любом случае, попробуйте это так:
- bash: Bash@3
displayName: GetToken
inputs:
targetType: 'inline'
script:
# Note the $() around the call of curl, grep and cut. If you want to assign the result of a call, then encapsulate it into $()
token=$(curl -H $HEADER -D $DATA www.example.com | grep -oEi $pattern | cut -d ':' -f 2 | cut -d '"' -f 2)
echo "##vso[task.setvariable variable=token;]$token"
# Just a side note: This is the short-hand syntax for using the bash task
- bash: |
echo "$(token)"
См. Также документы о том, как установить переменную конвейера в задачах сценария.
Если вы хотите использовать переменную в другом задании, то синтаксис немного отличается и задокументировано здесь :
- job: A
steps:
- bash: |
token=$(curl -H $HEADER -D $DATA www.example.com | grep -oEi $pattern | cut -d ':' -f 2 | cut -d '"' -f 2)
echo "##vso[task.setvariable variable=token;isOutput=true]$token"
displayName: GetToken
name: gettoken # you have to give the task a name to be able to access it through dependencies object below
- job: B
dependsOn: A
variables:
token: $[ dependencies.A.outputs['gettoken.token'] ]
Вы также можете взглянуть на Как установить переменную для вывода команды в Bash? .