Bash@3 – Bash v3-uppgift
Använd den här uppgiften för att köra ett Bash-skript på macOS, Linux eller 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.
Indata
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
. Valfritt. Använd när targetType = filePath
.
Argumenten som skickas till shell-skriptet. Antingen ordningsparametrar eller namngivna parametrar.
script
- Skript
string
. Krävs när targetType = inline
. Standardvärde: # Write your commands here\n\necho 'Hello world'
.
Innehållet i skriptet.
script
- Skript
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 aktiviteten om några fel skrivs till dataströmmen StandardError
.
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-startfiler.
noProfile
- Läs inte in profilens start-/initieringsfiler
boolean
. Standardvärde: true
.
Läs inte in den systemomfattande startfilen /etc/profile
eller någon av de personliga initieringsfilerna.
noRc
- **Läs inte det ~/.bashrc' initialization file**<br>
booleska. Default value:
värdet sant'.
Kontrollalternativ för aktivitet
Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Inga.
Kommentarer
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 väljs.
Information om Bash-startfiler
Bash-uppgiften 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 shell-skript letar Bash efter variabeln BASH_ENV
i miljön, visar dess värde om det 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 BASH_ENV
definiera 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-uppgiften. Det finns två sätt att göra detta:
Det första sättet är att använda aktivitetsindata bashEnvValue
. Se ett exempel som 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'
Anteckning
Observera att om bashEnvValue
indata definieras i Bash-aktiviteten åsidosätter pipelineaktiviteten värdet för variabeln BASH_ENV
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 anges som 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 uppgifter och ä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 Foo
kan 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 |
Krav | Ingen |
Funktioner | Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Valfri |
Inställningsbara variabler | Valfri |
Agentversion | 2.115.0 eller senare |
Uppgiftskategori | Verktyg |