Delen via


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