当我在 azure devops server shell 脚本任务中传递变量(路径)时,打印的路径不带“/”

When I pass the variable(path) in azure devops server shell script task, path prints without "/"

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

这是 Azure DevOps 管道任务:

这是我的 shell 脚本:

!/bin/bash echo

这是管道的输出:

请告诉我如何在打印变量时获得实际路径(带“/”)?

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


请尝试将变量作为 $BUILD_SOURCESDIRECTORY 传递,不带任何双引号或单引号。

我找到了解决方案。 我在 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 }}"