Bash@3 - Bash v3 任务

使用此任务在 macOS、Linux 或 Windows 上运行 Bash 脚本。

语法

# Bash v3
# Run a Bash script on macOS, Linux, or Windows.
- task: Bash@3
  inputs:
    #targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
    filePath: # string. Required when targetType = filePath. Script Path. 
    #arguments: # string. Optional. Use when targetType = filePath. Arguments. 
    #script: # string. Required when targetType = inline. Script. 
  # Advanced
    #workingDirectory: # string. Working Directory. 
    #failOnStderr: false # boolean. Fail on Standard Error. Default: false.
    #bashEnvValue: # string. Set value for BASH_ENV environment variable.
# Bash v3
# Run a Bash script on macOS, Linux, or Windows.
- task: Bash@3
  inputs:
    #targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
    filePath: # string. Required when targetType = filePath. Script Path. 
    #arguments: # string. Optional. Use when targetType = filePath. Arguments. 
    #script: # string. Required when targetType = inline. Script. 
  # Advanced
    #workingDirectory: # string. Working Directory. 
    #failOnStderr: false # boolean. Fail on Standard Error. Default: false.
    #noProfile: true # boolean. Don't load the profile startup/initialization files. Default: true.
    #noRc: true # boolean. Don't read the `~/.bashrc' initialization file. Default: true.
# Bash v3
# Run a Bash script on macOS, Linux, or Windows.
- task: Bash@3
  inputs:
    #targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
    filePath: # string. Required when targetType = filePath. Script Path. 
    #arguments: # string. Optional. Use when targetType = filePath. Arguments. 
    #script: # string. Required when targetType = inline. Script. 
  # Advanced
    #workingDirectory: # string. Working Directory. 
    #failOnStderr: false # boolean. Fail on Standard Error. Default: false.

输入

targetType - 类型
string. 允许的值: filePath (文件路径) , inline。 默认值:filePath

目标脚本类型:文件路径或内联。


filePath - 脚本路径
string. 当 targetType = filePath 时,需要此选项。

要执行的脚本的路径。 这必须是完全限定的路径或相对于 $(System.DefaultWorkingDirectory)


arguments - 参数
string. 可选。 在 时 targetType = filePath使用 。

传递给 shell 脚本的参数。 序号参数或命名参数。


script - 脚本
string. 当 targetType = inline 时,需要此选项。 默认值:# Write your commands here\n\necho 'Hello world'

脚本的内容。


script - 脚本
string. 当 targetType = inline 时,需要此选项。 默认值:# Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script

脚本的内容。


workingDirectory - 工作目录
string.

指定要在其中运行命令的工作目录。 如果将其留空,则工作目录为 $(Build.SourcesDirectory)


failOnStderr - 标准错误失败
boolean. 默认值:false

如果为 true,则如果向流中写入 StandardError 任何错误,则此任务将失败。


bashEnvValue - 设置BASH_ENV环境变量的值
string.

如果指定了输入,则其值将展开,并用作运行脚本之前要执行的启动文件的路径。 如果已定义环境变量 BASH_ENV ,则任务将仅针对当前任务重写此变量。 详细了解 Bash 启动文件


noProfile - 不加载配置文件启动/初始化文件
boolean. 默认值:true

不要加载系统范围的启动文件 /etc/profile 或任何个人初始化文件。


noRc - **不要读取 ~/.bashrc' initialization file**<br> boolean. Default value: true'。


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

bash 任务在 YAML 中具有快捷方式: steps.bash

steps:
- bash: string # Required as first property. An inline script. 
  ## Other task inputs

Bash 任务将在系统上找到第一个 Bash 实现。 which bash在 Linux/macOS 或 where bash Windows 上运行可让你了解它将选择哪一个。

有关 Bash 启动文件的信息

Bash 任务将 Bash 调用为非交互式、非登录 shell。 以非交互方式启动 Bash 时,为了运行 shell 脚本,Bash 会在环境中查找变量 BASH_ENV ,如果它出现在该处,则会展开其值,并使用 值作为文件的名称进行读取和执行。

有多个选项可用于在管道中定义 BASH_ENV 环境变量。 首先,可以将环境变量设置为 BASH_ENV 管道变量。 在这种情况下,Bash 任务的每个实例将尝试展开变量的值 BASH_ENV 并使用其值。

variables:
  BASH_ENV: "~/.profile"

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env

另一个选项是为 Bash 任务的一个特定实例设置 BASH_ENV ,有两种方法可以做到这一点:

第一种方法是使用 bashEnvValue 任务输入,请参阅参考示例:

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env
    bashEnvValue: '~/.profile'

另一种方法是通过关键字 (keyword) 将变量设置为BASH_ENV管道任务的env环境变量,例如:

- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env
  env:
    BASH_ENV: '~/.profile'

注意

请注意,如果在 bashEnvValue Bash 任务中定义了输入,则当环境变量已在环境中定义的情况下BASH_ENV,管道任务将使用输入的值替代BASH_ENV变量的值bashEnvValue

签入存储库的 Bash 脚本应设置为可执行文件 (chmod +x) 。 否则,任务将显示警告和 source 文件。

示例

可以使用 参数在变量 env 中映射,该参数 在所有任务中通用,并且是要映射到进程环境的其他项的列表。 例如,机密变量不会自动进行映射。 如果你有一个名为 Foo 的机密变量,可以像下面这样将它映射到其中:

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: echo $MYSECRET
  env:
    MYSECRET: $(Foo)

在 macOS 或 Linux 上,上述示例等效于:

steps:
- script: echo $MYSECRET
  env:
    MYSECRET: $(Foo)

要求

要求 说明
管道类型 YAML、经典版本、经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 2.115.0 或更高版本
任务类别 实用工具