Bash@3 - Bash v3-taak
Gebruik deze taak om een Bash-script uit te voeren in macOS, Linux of 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.
Invoerwaarden
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 zijn of ten opzichte van $(System.DefaultWorkingDirectory)
.
arguments
- Argumenten
string
. Optioneel. Gebruik wanneer targetType = filePath
.
De argumenten die zijn doorgegeven aan het shellscript. 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, is de werkmap $(Build.SourcesDirectory).
failOnStderr
- Fout 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 ervan uitgevouwen 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
- De opstart-/initialisatiebestanden van het profiel niet laden
boolean
. Standaardwaarde: true
.
Laad het opstartbestand /etc/profile
voor het hele systeem of een van de persoonlijke initialisatiebestanden niet.
noRc
- **Lees de ~/.bashrc' initialization file**<br>
booleaanse. Default value:
waarde waar niet'.
Opties voor taakbeheer
Alle taken hebben besturingsopties naast hun taakinvoer. Zie Besturingsopties en algemene taakeigenschappen voor 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 which bash
u linux/macOS of where bash
Windows uitvoert, krijgt u een idee van welke optie wordt geselecteerd.
Informatie over Bash-opstartbestanden
De Bash-taak roept de Bash aan als een niet-interactieve shell zonder aanmelding. Wanneer Bash niet-interactief wordt gestart om een shellscript uit te voeren, zoekt de Bash naar de variabele BASH_ENV
in de omgeving, vouwt de waarde uit als deze daar wordt weergegeven en gebruikt de waarde als de naam van een bestand om te lezen en uit te voeren.
Er zijn verschillende opties voor het definiëren van de BASH_ENV
omgevingsvariabele in een pijplijn. Ten eerste is het mogelijk om de BASH_ENV
omgevingsvariabele in te stellen als een pijplijnvariabele. In dit geval probeert elk exemplaar van de Bash-taak de waarde van de BASH_ENV
variabele uit te vouwen en de waarde ervan te gebruiken.
variables:
BASH_ENV: "~/.profile"
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
Een andere optie is om in te stellen BASH_ENV
voor één bepaald exemplaar van de Bash-taak. Dit kan op twee manieren:
De eerste manier is om de bashEnvValue
taakinvoer te gebruiken. Bekijk een voorbeeld ter referentie:
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 env
trefwoord, bijvoorbeeld:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Notitie
Houd er rekening mee dat als de bashEnvValue
invoer is gedefinieerd in de Bash-taak, de pijplijntaak de waarde van de BASH_ENV
variabele overschrijft met de waarde uit de bashEnvValue
invoer in een geval waarin de BASH_ENV
omgevingsvariabele al in de omgeving was gedefinieerd.
Bash-scripts die zijn ingecheckt in de opslagplaats, moeten uitvoerbaar zijn ingesteld (chmod +x
).
Anders wordt in de taak een waarschuwing en source
in plaats daarvan het bestand weergegeven.
Voorbeelden
U kunt variabelen toewijzen met behulp van de env
parameter die gemeenschappelijk is voor alle taken en is een lijst met aanvullende items die moeten worden toegewezen aan de omgeving van het proces.
Geheime variabelen worden bijvoorbeeld niet automatisch toegewezen. Als u een geheime variabele hebt met de naam Foo
, 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)
Vereisten
Vereiste | Beschrijving |
---|---|
Pijplijntypen | YAML, klassieke build, klassieke release |
Wordt uitgevoerd op | Agent, DeploymentGroup |
Eisen | Geen |
Functies | Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak. |
Opdrachtbeperkingen | Alle |
Instelbare variabelen | Alle |
Agentversie | 2.115.0 of hoger |
Taakcategorie | Hulpprogramma |