Azure devops 如何在Bash/Powershell脚本中使用AzureDevOps预定义变量

Azure devops 如何在Bash/Powershell脚本中使用AzureDevOps预定义变量,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,在AzureDevOps管道中,我有用Bash/Powershell脚本编写的任务。 如果我选择使用Inlinescrpit,我可以直接使用预定义的变量,例如 cd $(Build.SourcesDirectory) 但是,如果选择使用文件路径调用脚本,则无法直接在脚本文件中使用预定义变量。我必须将预定义变量传递给任务定义中的环境变量,如下面的示例所示,这样我就可以在script.sh中使用$SourceDirectoy, 是否有更好的方法在脚本中调用预定义的变量direclty?我相信这些

在AzureDevOps管道中,我有用Bash/Powershell脚本编写的任务。
如果我选择使用Inlinescrpit,我可以直接使用预定义的变量,例如

cd $(Build.SourcesDirectory)
但是,如果选择使用文件路径调用脚本,则无法直接在脚本文件中使用预定义变量。我必须将预定义变量传递给任务定义中的环境变量,如下面的示例所示,这样我就可以在script.sh中使用$SourceDirectoy,


是否有更好的方法在脚本中调用预定义的变量direclty?

我相信这些变量也可用于脚本,但在脚本中引用它们的格式可能取决于脚本类型。参考

请注意,变量也可以通过 环境变量。使用这些环境的语法 变量取决于脚本语言

名称用大写字母表示,而。将替换为389;。这是 自动插入到流程环境中。这里有一些 示例:

  • 批处理脚本:%VARIABLE\u NAME%
  • PowerShell脚本:$env:VARIABLE\u NAME
  • Bash脚本:$VARIABLE\u NAME
包含文件路径的预定义变量将转换为 适当的样式(Windows样式C:\foo\vs Unix样式/foo/) 基于代理主机类型和外壳类型。如果您正在运行bash 在Windows上为任务编写脚本时,应使用环境变量 用于访问这些变量而不是管道变量的方法 方法以确保具有正确的文件路径样式