2

当我将“$(Build.SourcesDirectory)”变量作为 shell 脚本参数传递时,我正在使用 Azure DevOps 服务器管道 shell 脚本任务,我发现在打印变量时路径没有得到“/”。

这是 Azure DevOps 管道任务: 在此处输入图像描述

这是我的shell脚本:

!/bin/bash 回声 $1

这是管道的输出:

在此处输入图像描述

请给出一些想法,在打印变量时如何获得实际路径(使用“/”)?

4

2 回答 2

1

我找到了解决方案。我在 azure-pipelines.yml 中添加了 Azure DevOps Server 2019 预定义变量作为额外变量,如下所示:

- task: Ansible@0
  inputs:
    ansibleInterface: 'agentMachine'
    playbookPathOnAgentMachine: 'ansible/tfs_playbooks/install_agent.yml'
    inventoriesAgentMachine: 'file'
    inventoryFileOnAgentMachine: 'hosts.yml'
    args: '--extra-vars "build_source_dir=$(Build.SourcesDirectory)"'

然后我可以使用以下方法访问我的剧本中的变量:

---
- hosts: localhost
  tasks:
  - name: show debug
    debug:
      msg: "Dir {{ build_source_dir }}"
于 2020-03-31T09:20:20.477 回答
0

如果我没猜错的话,这个管道使用的代理位于 Windows 中吗?


请尝试传递变量,因为$BUILD_SOURCESDIRECTORY没有任何双引号或单引号。

在此处输入图像描述

于 2020-01-27T16:47:13.177 回答