我有一个简单的bash脚本,它从命令中获取一个值,将其存储在变量中,并使用if条件中断构建。这适用于任何bash终端。请参见下面的代码。
在任何 bash 终端中,根据 if 条件语句中给定的字符串 "OK" 或 "ERROR" ,我都可以得到正确的输出。但是在 Azure 流水线的 bash 任务中,当我将其用作内联脚本时,它总是以 "Quality gate failed" 的输出退出。请问有人能帮忙吗?
#!/bin/bash
jq --version
PRkey=$(curl -u TOKEN: 'https://xx.yyy.zzz/abc/abc' | jq '.pullRequests | sort_by(.key)[0].status.qualityGateStatus')
echo $PRkey
if [[ "$PRkey" = "OK" ]]
then
echo "Quality gate passed"
else
echo "Quality gate failed"
exit 1
fi
在任何 bash 终端中,根据 if 条件语句中给定的字符串 "OK" 或 "ERROR" ,我都可以得到正确的输出。但是在 Azure 流水线的 bash 任务中,当我将其用作内联脚本时,它总是以 "Quality gate failed" 的输出退出。请问有人能帮忙吗?
PRkey
?echo
显示了什么? - Inianjq-1.5-1-a5b5cbe % 总体 % 接收 % 传输 平均速度 时间 时间 时间 当前 下载 上传 总计 花费 剩余 速度 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 3445 100 3445 0 0 10278 0 --:--:-- --:--:-- --:--:-- 10252 "OK" 质量门限未通过
- AK123OK
还是"OK"
?你的 if 语句看起来是寻找没有引号的OK
。 - Walter A"OK"
。我应该如何修改它来寻找引号? - AK123[[ $PRkey == '"OK"' ]]
或[[ $PRkey == \"OK\" ]]
。 - user1934428