Partilhar via


Bash@3 - Tarefa bash v3

Utilize esta tarefa para executar um script bash no macOS, Linux ou Windows.

Syntax

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

Entradas

targetType - Tipo
string. Valores permitidos: filePath (Caminho do Ficheiro), inline. Valor predefinido: filePath.

Tipo de script de destino: caminho de ficheiro ou inline.


filePath - Caminho do Script
string. Necessário quando targetType = filePath.

O caminho do script a executar. Este tem de ser um caminho completamente qualificado ou relativo a $(System.DefaultWorkingDirectory).


arguments - Argumentos
string. Opcional. Utilize quando targetType = filePath.

Os argumentos transmitidos para o script da shell. Parâmetros ordinais ou parâmetros nomeados.


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

O conteúdo do script.


script - Script
string. Necessário quando targetType = inline. Valor predefinido: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

O conteúdo do script.


workingDirectory - Diretório de Trabalho
string.

Especifica o diretório de trabalho no qual pretende executar o comando. Se o deixar vazio, o diretório de trabalho é $(Build.SourcesDirectory).


failOnStderr - Falha no Erro Padrão
boolean. Valor predefinido: false.

Se for verdade, esta tarefa falhará se forem escritos erros no StandardError fluxo.


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

Se a entrada for especificada, o respetivo valor é expandido e utilizado como o caminho de um ficheiro de arranque a executar antes de executar o script. Se a variável BASH_ENV de ambiente já tiver sido definida, a tarefa substituirá esta variável apenas para a tarefa atual. Saiba mais sobre os Ficheiros de Arranque do Bash.


noProfile - Não carregue os ficheiros de arranque/inicialização do perfil
boolean. Valor predefinido: true.

Não carregue o ficheiro /etc/profile de arranque em todo o sistema nem nenhum dos ficheiros de inicialização pessoal.


noRc - **Não leia o ~/.bashrc' initialization file**<br> valor booleano. Default value: ".


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

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

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

A tarefa bash encontrará a primeira implementação do Bash no seu sistema. A execução which bash no Linux/macOS ou where bash no Windows irá dar-lhe uma ideia do que irá selecionar.

Informações sobre ficheiros de arranque do Bash

A tarefa bash invoca o Bash como uma shell não interativa e não de início de sessão. 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 o respetivo valor se aparecer aí e utiliza o valor como o nome de um ficheiro para ler e executar.

Existem várias opções para definir a variável de BASH_ENV ambiente num pipeline. Em primeiro lugar, é possível definir a BASH_ENV variável de ambiente como uma variável de pipeline. Neste caso, cada instância da tarefa bash tentará desdobrar o valor da variável e utilizar o BASH_ENV respetivo 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, existem duas formas de o fazer:

A primeira forma é utilizar a entrada da bashEnvValue tarefa. Veja um exemplo para referência:

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

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

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

Nota

Tenha em atenção que, se a bashEnvValue entrada estiver definida na tarefa bash, a tarefa de pipeline substituirá o valor da BASH_ENV variável com o valor da bashEnvValue entrada num caso em que a variável de BASH_ENV ambiente já estava definida no ambiente.

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

Exemplos

Pode mapear em variáveis com o env parâmetro que é comum em todas as tarefas e é uma lista de itens adicionais para mapear para o ambiente do processo. Por exemplo, as variáveis secretas não são mapeadas automaticamente. Se tiver uma variável secreta chamada Foo, pode mapeá-la da seguinte 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 Description
Tipos de pipeline YAML, Compilação clássica, Versão clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de tabelas definidas Qualquer
Versão do agente 2.115.0 ou superior
Categoria da tarefa Utilitário