【发布时间】:2020-03-10 10:20:28
【问题描述】:
我需要通过 curl restAPI 并执行内容 grep 并剪切某些字符以获得新的令牌值作为变量 但是我不知道如何在变量中进行curl、grep、cut ...操作
在变量中做这些操作的逻辑可行吗?
EX.
- task: Bash@3
displayName: GetToken
inputs:
targetType: 'inline'
script:
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
或者我可以获取任务输出的值来设置一个新变量吗? 例如。
- task: Bash@3
displayName: CreateToken
inputs:
targetType: 'inline'
script:
curl --header $HEADER --data "{userKey:$USERKEY,orgToken:$ORGTOKEN,requestType:getAllProducts}" $API |grep -oEI "\"productName\":\"$PRODUCTNAME\",\"productToken\":\"[0-9a-f]*\"" | cut -d ':' -f 3 | cut -d '"' -f 2
Output
========================== Starting Command Output ===========================
/bin/bash --noprofile --norc /home/vsts/work/_temp/a6f13e9c-2c45-4ac7-9674-42de3efe2503.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 147 0 0 100 147 0 158 --:--:-- --:--:-- --:--:-- 158
100 13655 0 13508 100 147 12577 136 0:00:01 0:00:01 --:--:-- 12714
33234d4db39844cf8c73c54e398c44c248ab368f319a4af7b9646cb461fa60b9 //I want to get this value as new variable
- task: Bash@3
displayName: GetCreateToken
inputs:
targetType: 'inline'
script:
Token= $CreateToken
echo "##vso[task.setvariable variable=token;]$token
【问题讨论】:
标签: bash azure-devops yaml azure-pipelines pipeline