Dela via


Bash@3 – Bash v3-uppgift

Använd den här uppgiften för att köra ett Bash-skript på macOS, Linux eller Windows.

Not

På en Windows-värd körs bash från WSL-standarddistributionen. WSL måste installeras och användaren som agenten kör som måste ha en distributionskonfiguration. WSL är installerat på Microsoft-värdbaserade Windows-agentbilder. Mer information finns i Microsoft-värdbaserade agenter – Software.

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.

Ingångar

targetType - typ
string. Tillåtna värden: filePath (filsökväg), inline. Standardvärde: filePath.

Målskripttyp: filsökväg eller infogad.


filePath - skriptsökväg
string. Krävs när targetType = filePath.

Sökvägen till skriptet som ska köras. Detta måste vara en fullständigt kvalificerad sökväg eller i förhållande till $(System.DefaultWorkingDirectory).


arguments - argument
string. Valfri. Använd när targetType = filePath.

Argumenten som skickas till shell-skriptet. Antingen ordningsparametrar eller namngivna parametrar.


script - Script
string. Krävs när targetType = inline. Standardvärde: # Write your commands here\n\necho 'Hello world'.

Innehållet i skriptet.


script - Script
string. Krävs när targetType = inline. Standardvärde: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

Innehållet i skriptet.


workingDirectory - Arbetskatalog
string.

Anger arbetskatalogen där du vill köra kommandot. Om du lämnar den tom är arbetskatalogen $(Build.SourcesDirectory).


failOnStderr - fel vid standardfel
boolean. Standardvärde: false.

Om detta är sant misslyckas den här uppgiften om några fel skrivs till StandardError dataströmmen.


bashEnvValue - Ange värde för BASH_ENV miljövariabel
string.

Om indata anges expanderas dess värde och används som sökväg till en startfil som ska köras innan skriptet körs. Om miljövariabeln BASH_ENV redan har definierats åsidosätter aktiviteten endast den här variabeln för den aktuella aktiviteten. Läs mer om Bash Startup Files.


noProfile - Läs inte in profilens start-/initieringsfiler
boolean. Standardvärde: true.

Läs inte in startfilen för hela systemet /etc/profile eller någon av de personliga initieringsfilerna.


noRc – **Läs inte det ~/.bashrc' initialization file**<br> booleska. Default value: sant".


Alternativ för aktivitetskontroll

Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Ingen.

Anmärkningar

Bash-uppgiften har en genväg i YAML: steps.bash.

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

Bash-uppgiften hittar den första Bash-implementeringen i systemet. Om du kör which bash på Linux/macOS eller where bash i Windows får du en uppfattning om vilken som ska väljas.

Information om Bash-startfiler

Bash-aktiviteten anropar Bash som ett icke-interaktivt gränssnitt som inte är inloggningsgränssnitt. När Bash startas icke-interaktivt för att köra ett gränssnittsskript letar Bash efter variabeln BASH_ENV i miljön, utvecklar dess värde om den visas där och använder värdet som namnet på en fil för att läsa och köra.

Det finns flera alternativ för att definiera BASH_ENV miljövariabeln i en pipeline. För det första är det möjligt att ange BASH_ENV miljövariabeln som en pipelinevariabel. I det här fallet försöker varje instans av Bash-aktiviteten att utveckla värdet för variabeln BASH_ENV och använda dess värde.

variables:
  BASH_ENV: "~/.profile"

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

Ett annat alternativ är att ange BASH_ENV för en viss instans av Bash-aktiviteten, det finns två sätt att göra detta:

Det första sättet är att använda bashEnvValue uppgiftsindata, se ett exempel för referens:

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

Ett annat sätt är att ange variabeln BASH_ENV som en miljövariabel för pipelineaktiviteten via nyckelordet env, till exempel:

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

Not

Observera att om bashEnvValue indata definieras i Bash-aktiviteten åsidosätter pipelineaktiviteten värdet för BASH_ENV variabeln med värdet från bashEnvValue indata i ett fall då BASH_ENV miljövariabeln redan har definierats i miljön.

Bash-skript som checkas in på lagringsplatsen ska ställas in körbara (chmod +x). Annars visar aktiviteten en varning och source filen i stället.

Exempel

Du kan mappa i variabler med hjälp av parametern env som är gemensam för alla uppgifteroch är en lista över ytterligare objekt som ska mappas till processens miljö. Till exempel mappas inte hemliga variabler automatiskt. Om du har en hemlig variabel med namnet Fookan du mappa den så här:

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

I macOS eller Linux motsvarar exemplet ovan:

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

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
kräver Ingen
funktioner Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Någon
variabler som kan Någon
Agentversion 2.115.0 eller senare
Aktivitetskategori Nytta