Condividi tramite


Bash@3 - Attività Bash v3

Usare questa attività per eseguire uno script Bash in macOS, Linux o Windows.

Nota

In un host Windows viene eseguito bash dalla distribuzione predefinita di WSL. WSL deve essere installato e l'utente che l'agente viene eseguito come deve avere una configurazione di distribuzione. WSL viene installato nelle immagini dell'agente Windows ospitate da Microsoft. Per altre informazioni, vedere agenti ospitati da Microsoft - Software.

Sintassi

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

Ingressi

di tipo targetType -
string. Valori consentiti: filePath (percorso file), inline. Valore predefinito: filePath.

Tipo di script di destinazione: percorso del file o inline.


filePath - percorso script
string. Obbligatorio quando targetType = filePath.

Percorso dello script da eseguire. Deve trattarsi di un percorso completo o relativo a $(System.DefaultWorkingDirectory).


arguments - argomenti
string. Opzionale. Usare quando targetType = filePath.

Argomenti passati allo script della shell. Parametri ordinali o parametri denominati.


script - script
string. Obbligatorio quando targetType = inline. Valore predefinito: # Write your commands here\n\necho 'Hello world'.

Contenuto dello script.


script - script
string. Obbligatorio quando targetType = inline. Valore predefinito: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

Contenuto dello script.


workingDirectory - directory di lavoro
string.

Specifica la directory di lavoro in cui si vuole eseguire il comando. Se si lascia vuoto, la directory di lavoro viene $(Build.SourcesDirectory).


failOnStderr - errore standard
boolean. Valore predefinito: false.

Se è true, questa attività avrà esito negativo se vengono scritti errori nel flusso StandardError.


bashEnvValue - Valore impostato per BASH_ENV variabile di ambiente
string.

Se si specifica l'input, il relativo valore viene espanso e usato come percorso di un file di avvio da eseguire prima di eseguire lo script. Se la variabile di ambiente BASH_ENV è già stata definita, l'attività eseguirà l'override di questa variabile solo per l'attività corrente. Altre informazioni su file di avvio Bash.


noProfile - Non caricare i file di avvio/inizializzazione del profilo
boolean. Valore predefinito: true.

Non caricare il file di avvio a livello di sistema /etc/profile o uno dei file di inizializzazione personale.


noRc : **Non leggere il ~/.bashrc' initialization file**<br> booleano. Default value: true'.


Opzioni di controllo attività

Tutte le attività hanno opzioni di controllo oltre ai relativi input di attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni

L'attività bash include un collegamento in YAML: steps.bash.

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

L'attività Bash troverà la prima implementazione Bash nel sistema. L'esecuzione di which bash in Linux/macOS o where bash in Windows ti darà un'idea di quale selezionerà.

Informazioni sui file di avvio di Bash

L'attività Bash richiama Bash come shell non interattiva e non di accesso. Quando Bash viene avviato in modo non interattivo, per eseguire uno script della shell, Bash cerca la variabile BASH_ENV nell'ambiente, ne apre il valore se viene visualizzato e usa il valore come nome di un file da leggere ed eseguire.

Sono disponibili diverse opzioni per definire la variabile di ambiente BASH_ENV in una pipeline. In primo luogo, è possibile impostare la variabile di ambiente BASH_ENV come variabile della pipeline. In questo caso, ogni istanza dell'attività Bash tenterà di espandere il valore della variabile BASH_ENV e di usarne il valore.

variables:
  BASH_ENV: "~/.profile"

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

Un'altra opzione consiste nell'impostare BASH_ENV per una particolare istanza dell'attività Bash, esistono due modi per eseguire questa operazione:

Il primo consiste nell'usare l'input dell'attività bashEnvValue, vedere un esempio di riferimento:

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

Un altro modo consiste nell'impostare la variabile BASH_ENV come variabile di ambiente per l'attività della pipeline tramite la parola chiave env, ad esempio:

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

Nota

Si noti che se l'input bashEnvValue è definito nell'attività Bash, l'attività della pipeline eseguirà l'override del valore della variabile BASH_ENV con il valore dell'input bashEnvValue in un caso in cui la variabile di ambiente BASH_ENV fosse già definita nell'ambiente.

Gli script Bash controllati nel repository devono essere impostati eseguibili (chmod +x). In caso contrario, l'attività visualizzerà un avviso e source il file.

Esempi

È possibile eseguire il mapping nelle variabili usando il parametro env che è comune in tutte le attivitàed è un elenco di elementi aggiuntivi da eseguire nel mapping nell'ambiente del processo. Ad esempio, le variabili segrete non vengono mappate automaticamente. Se si dispone di una variabile segreta denominata Foo, è possibile eseguirne il mapping nel modo seguente:

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

In macOS o Linux l'esempio precedente equivale a:

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

Fabbisogno

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
richieste Nessuno
funzionalità di Questa attività non soddisfa alcuna richiesta di attività successive nel processo.
restrizioni dei comandi Qualunque
variabili impostabili Qualunque
Versione dell'agente 2.115.0 o versione successiva
Categoria attività Utilità