Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
# 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.
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.
noProfile
-
Não carregue os arquivos de inicialização/inicialização de perfil
boolean. Valor padrão: true.
Não carregue o arquivo de inicialização em todo o sistema /etc/profile ou qualquer um dos arquivos de inicialização pessoal.
noRc - **Não leia o ~/.bashrc' initialization file**<br> booliano. Default value: verdadeiro".
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 | Agent, 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 |