Condividi tramite


Bash@3 - Attività Bash v3

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

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.

Input

targetType - Digitare
string. Valori consentiti: filePath (Percorso file), inline. Valore predefinito: filePath.

Tipo di script di destinazione: percorso file o inline.


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

Percorso dello script da eseguire. Questo deve essere un percorso completo o relativo a $(System.DefaultWorkingDirectory).


arguments - Argomenti
string. facoltativo. Usare quando targetType = filePath.

Gli argomenti passati allo script della shell. Parametri ordinali o parametri denominati.


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

Contenuto dello script.


script - Copione
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 lo si lascia vuoto, la directory di lavoro è $(Build.SourcesDirectory).


failOnStderr - Errore standard non riuscita
boolean. Valore predefinito: false.

Se si tratta di un valore true, questa attività avrà esito negativo se vengono scritti errori nel StandardError flusso.


bashEnvValue - Impostare il valore per la variabile di ambiente BASH_ENV
string.

Se l'input viene specificato, 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 è già stata definita, l'attività eseguirà l'override di questa variabile BASH_ENV solo per l'attività corrente. Altre informazioni sui file di avvio di Bash.


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

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


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


Opzioni di controllo delle attività

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

Variabili di output

Nessuno.

Osservazioni

L'attività bash ha 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 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 sviluppa il valore se viene visualizzato e usa il valore come nome di un file per leggere ed eseguire.

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

variables:
  BASH_ENV: "~/.profile"

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

Un'altra opzione consiste nel impostare BASH_ENV per un'istanza specifica dell'attività Bash, esistono due modi in cui è possibile eseguire questa operazione:

Il primo modo 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 come variabile di ambiente per l'attività BASH_ENV della pipeline tramite la env parola chiave, 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 con il valore dell'input BASH_ENVbashEnvValue in un caso in cui la BASH_ENV variabile di ambiente è già stata 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.

Esempio

È possibile eseguire il mapping nelle variabili usando il env parametro 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 in come illustrato di seguito:

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)

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Esecuzione in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 2.115.0 o versione successiva
Categoria attività Utilità