Bash@3 - Bash v3-taak
Gebruik deze taak om een Bash-script uit te voeren op macOS, Linux of Windows.
Notitie
Op een Windows-host wordt bash uitgevoerd vanuit de standaarddistributie van WSL. WSL moet worden geïnstalleerd en de gebruiker die de agent uitvoert, moet een distributie-installatie hebben. WSL is geïnstalleerd op door Microsoft gehoste Windows-agentinstallatiekopieën. Zie door Microsoft gehoste agents - Softwarevoor meer informatie.
Syntaxis
# 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.
Ingangen
targetType
-
type
string
. Toegestane waarden: filePath
(bestandspad), inline
. Standaardwaarde: filePath
.
Doelscripttype: bestandspad of inline.
filePath
-
scriptpad
string
. Vereist wanneer targetType = filePath
.
Het pad van het script dat moet worden uitgevoerd. Dit moet een volledig gekwalificeerd pad of ten opzichte van $(System.DefaultWorkingDirectory)
zijn.
arguments
-
argumenten
string
. Facultatief. Gebruiken wanneer targetType = filePath
.
De argumenten die zijn doorgegeven aan het shell-script. Ordinale parameters of benoemde parameters.
script
-
script
string
. Vereist wanneer targetType = inline
. Standaardwaarde: # Write your commands here\n\necho 'Hello world'
.
De inhoud van het script.
script
-
script
string
. Vereist wanneer targetType = inline
. Standaardwaarde: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script
.
De inhoud van het script.
workingDirectory
-
werkmap
string
.
Hiermee geeft u de werkmap waarin u de opdracht wilt uitvoeren. Als u deze leeg laat, wordt de werkmap $(Build.SourcesDirectory).
failOnStderr
-
mislukt bij standaardfout
boolean
. Standaardwaarde: false
.
Als dit waar is, mislukt deze taak als er fouten naar de StandardError
stream worden geschreven.
bashEnvValue
-
waarde instellen voor BASH_ENV omgevingsvariabele
string
.
Als de invoer is opgegeven, wordt de waarde uitgebreid en gebruikt als het pad van een opstartbestand dat moet worden uitgevoerd voordat het script wordt uitgevoerd. Als de omgevingsvariabele BASH_ENV
al is gedefinieerd, overschrijft de taak deze variabele alleen voor de huidige taak. Meer informatie over Bash-opstartbestanden.
noProfile
-
laad de opstart-/initialisatiebestanden van het profiel niet
boolean
. Standaardwaarde: true
.
Laad het opstartbestand voor het hele systeem niet /etc/profile
of een van de persoonlijke initialisatiebestanden.
noRc
- **Lees de ~/.bashrc' initialization file**<br>
booleaanse waarde niet. Default value:
waar'.
Opties voor taakbeheer
Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.
Uitvoervariabelen
Geen.
Opmerkingen
De bash-taak heeft een snelkoppeling in YAML: steps.bash.
steps:
- bash: string # Required as first property. An inline script.
## Other task inputs
De Bash-taak vindt de eerste Bash-implementatie op uw systeem.
Als u which bash
uitvoert in Linux/macOS of where bash
in Windows, krijgt u een idee van de gewenste optie.
Informatie over Bash-opstartbestanden
De Bash-taak roept de Bash aan als een niet-interactieve, niet-aanmeldingsshell. Wanneer Bash niet-interactief wordt gestart om een shellscript uit te voeren, zoekt de Bash naar de variabele BASH_ENV
in de omgeving, wordt de waarde uitgevouwen als deze daar wordt weergegeven en wordt de waarde gebruikt als de naam van een bestand om te lezen en uit te voeren.
Er zijn verschillende opties voor het definiëren van de omgevingsvariabele BASH_ENV
in een pijplijn. Ten eerste is het mogelijk om de omgevingsvariabele BASH_ENV
in te stellen als een pijplijnvariabele. In dit geval probeert elke instantie van de Bash-taak de waarde van de BASH_ENV
variabele uit te vouwen en de bijbehorende waarde te gebruiken.
variables:
BASH_ENV: "~/.profile"
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
Een andere optie is om BASH_ENV
in te stellen voor één bepaald exemplaar van de Bash-taak. U kunt dit op twee manieren doen:
De eerste manier is om de bashEnvValue
taakinvoer te gebruiken. Zie een voorbeeld voor naslaginformatie:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
bashEnvValue: '~/.profile'
Een andere manier is om de BASH_ENV
variabele in te stellen als een omgevingsvariabele voor de pijplijntaak via het trefwoord env
, bijvoorbeeld:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Notitie
Als de bashEnvValue
invoer is gedefinieerd in de Bash-taak, overschrijft de pijplijntaak de waarde van de BASH_ENV
variabele met de waarde van de bashEnvValue
-invoer in een geval waarin de BASH_ENV
omgevingsvariabele al in de omgeving is gedefinieerd.
Bash-scripts die zijn ingecheckt in de opslagplaats, moeten uitvoerbaar zijn ingesteld (chmod +x
).
Anders wordt in de taak een waarschuwing weergegeven en wordt het bestand source
.
Voorbeelden
U kunt in variabelen toewijzen met behulp van de parameter env
die gebruikelijk is voor alle taken, en is een lijst met extra items die moeten worden toegewezen aan de omgeving van het proces.
Geheime variabelen worden bijvoorbeeld niet automatisch toegewezen. Als u een geheime variabele met de naam Foo
hebt, kunt u deze als volgt toewijzen:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: echo $MYSECRET
env:
MYSECRET: $(Foo)
In macOS of Linux is het bovenstaande voorbeeld gelijk aan:
steps:
- script: echo $MYSECRET
env:
MYSECRET: $(Foo)
Eisen
Eis | Beschrijving |
---|---|
Pijplijntypen | YAML, klassieke build, klassieke release |
Wordt uitgevoerd op | Agent, DeploymentGroup |
eisen | Geen |
mogelijkheden | Deze taak voldoet niet aan de vereisten voor volgende taken in de taak. |
opdrachtbeperkingen | Enig |
variabelen instellen | Enig |
Agentversie | 2.115.0 of hoger |
Taakcategorie | Nut |