You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline设置版本变量失败,调用时提示命令未找到

解决Azure Pipeline中Bash任务引用变量报错的问题

问题原因

你遇到的command not found错误,是因为在Bash脚本中直接使用$(ModuleVersion)这种语法时,Bash会将其解析为命令替换(尝试执行名为ModuleVersion的命令),而不是引用Azure Pipeline的管道变量。同样,$(GetModuleVersion.ModuleVersion)的写法也不符合Bash任务中引用步骤输出变量的正确格式。

修正方案

在Azure Pipeline的Bash任务中,引用管道变量或步骤输出变量需要使用正确的语法:

1. 引用全局管道变量

使用Azure Pipeline的表达式语法${{ variables.ModuleVersion }},或者利用Azure自动转换的环境变量(Linux/macOS下变量名会转为大写+下划线形式,即$MODULEVERSION)。

2. 引用步骤输出变量

步骤输出变量需要通过steps.步骤名.outputs.变量名的表达式来引用,即${{ steps.GetModuleVersion.outputs.ModuleVersion }}。

修正后的检查步骤代码

- task: Bash@3
  displayName: Check module version
  inputs:
    targetType: 'inline'
    script: |
      # 用管道表达式引用全局变量
      echo "${{ variables.ModuleVersion }}"
      # 用环境变量引用全局变量(Linux下自动转大写下划线)
      echo "$MODULEVERSION"
      # 引用步骤输出变量
      echo "${{ steps.GetModuleVersion.outputs.ModuleVersion }}"

额外说明

你在本地Bash中测试的是本地变量MODVER,这和Azure Pipeline的管道变量不是同一个概念,所以本地能正常运行但管道中出错。另外,确保Get module version步骤中MODVER变量确实被正确赋值(可以通过该步骤的echo $MODVER输出来验证)。

内容的提问来源于stack exchange,提问作者Shirofuji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:07:30