Compartilhar via


Bash@3 – Tarefa Bash v3

Use essa tarefa para executar um script Bash no macOS, Linux ou Windows.

Nota

Em um host do Windows, isso executa bash da distribuição padrão do WSL. O WSL deve ser instalado e o usuário que o agente executa como deve ter uma configuração de distribuição. O WSL é instalado em imagens de agente do Windows hospedadas pela Microsoft. Para obter mais informações, consulte agentes hospedados pela Microsoft – Software.

Sintaxe

# 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.

Entradas

targetType - tipo
string. Valores permitidos: filePath (Caminho do Arquivo), inline. Valor padrão: filePath.

Tipo de script de destino: caminho do arquivo ou embutido.


filePath - caminho de script
string. Necessário quando targetType = filePath.

O caminho do script a ser executado. Esse deve ser um caminho totalmente qualificado ou relativo a $(System.DefaultWorkingDirectory).


argumentos arguments -
string. Opcional. Use quando targetType = filePath.

Os argumentos passados para o script de shell. Parâmetros ordinais ou parâmetros nomeados.


de Script script -
string. Necessário quando targetType = inline. Valor padrão: # Write your commands here\n\necho 'Hello world'.

O conteúdo do script.


do Diretório de Trabalho do workingDirectory -
string.

Especifica o diretório de trabalho no qual você deseja executar o comando. Se você deixá-lo vazio, o diretório de trabalho será $(Build.SourcesDirectory).


failOnStderr - falha no de erro padrão
boolean. Valor padrão: false.

Se isso for verdadeiro, essa tarefa falhará se algum erro for gravado no fluxo de StandardError.


bashEnvValue - Definir valor para BASH_ENV variável de ambiente
string.

Se a entrada for especificada, seu valor será expandido e usado como o caminho de um arquivo de inicialização a ser executado antes de executar o script. Se a variável de ambiente BASH_ENV já tiver sido definida, a tarefa substituirá essa variável apenas para a tarefa atual. Saiba mais sobre de arquivos de inicialização do bash.


Opções de controle de tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Observações

A tarefa bash tem um atalho em YAML: steps.bash.

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

A tarefa Bash encontrará a primeira implementação bash em seu sistema. Executar which bash no Linux/macOS ou where bash no Windows lhe dará uma ideia de qual deles ele selecionará.

Informações sobre arquivos de inicialização do Bash

A tarefa Bash invoca o Bash como um shell não interativo e não de logon. Quando o Bash é iniciado de forma não interativa, para executar um script de shell, o Bash procura a variável BASH_ENV no ambiente, desdobra seu valor se ele aparece lá e usa o valor como o nome de um arquivo para ler e executar.

Há várias opções para definir a variável de ambiente BASH_ENV em um pipeline. Em primeiro lugar, é possível definir a variável de ambiente BASH_ENV como uma variável de pipeline. Nesse caso, cada instância da tarefa Bash tentará desdobrar o valor da variável BASH_ENV e usar seu valor.

variables:
  BASH_ENV: "~/.profile"

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

Outra opção é definir BASH_ENV para uma instância específica da tarefa Bash, há duas maneiras de fazer isso:

A primeira maneira é usar a entrada da tarefa bashEnvValue, consulte um exemplo para referência:

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

Outra maneira é definir a variável BASH_ENV como uma variável de ambiente para a tarefa de pipeline por meio da palavra-chave env, por exemplo:

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

Nota

Observe que, se a entrada bashEnvValue for definida na tarefa Bash, a tarefa de pipeline substituirá o valor da variável BASH_ENV com o valor da entrada bashEnvValue em um caso em que a variável de ambiente BASH_ENV já estava definida no ambiente.

Os scripts bash verificados no repositório devem ser definidos executáveis (chmod +x). Caso contrário, a tarefa mostrará um aviso e source o arquivo.

Exemplos

Você pode mapear variáveis usando o parâmetro env que é comum em todas as tarefase é uma lista de itens adicionais a serem mapeados para o ambiente do processo. Por exemplo, variáveis secretas não são mapeadas automaticamente. Se você tiver uma variável secreta chamada Foo, poderá mapeá-la desta forma:

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

No macOS ou linux, o exemplo acima é equivalente a:

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

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Execuções em Agente, DeploymentGroup
de demandas Nenhum
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
restrições de comando Qualquer
variáveis settable Qualquer
Versão do agente 2.115.0 ou superior
Categoria de tarefa Utilidade