Teilen über


Bash@3 – Bash v3-Aufgabe

Ausführen eines Bash-Skripts unter macOS, Linux oder 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.

Eingaben

targetType - Typ
string. Zulässige Werte: filePath (Dateipfad), inline. Standardwert. filePath.

Zielskripttyp: Dateipfad oder Inline.


filePath - Skriptpfad
string. Erforderlich, wenn targetType = filePath.

Der Pfad des auszuführenden Skripts. Dies muss ein vollqualifizierter Pfad oder relativ zu $(System.DefaultWorkingDirectory)sein.


arguments - Argumente
string. Optional. Verwenden Sie , wenn targetType = filePath.

Die an das Shellskript übergebenen Argumente. Entweder Ordinalparameter oder benannte Parameter.


script - Skript
string. Erforderlich, wenn targetType = inline. Standardwert. # Write your commands here\n\necho 'Hello world'.

Der Inhalt des Skripts.


script - Skript
string. Erforderlich, wenn targetType = inline. Standardwert. # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

Der Inhalt des Skripts.


workingDirectory - Arbeitsverzeichnis
string.

Gibt das Arbeitsverzeichnis an, in dem Sie den Befehl ausführen möchten. Wenn Sie es leer lassen, lautet das Arbeitsverzeichnis $(Build.SourcesDirectory).


failOnStderr - Fehler beim Standardfehler
boolean. Standardwert. false.

Wenn dies zutrifft, schlägt diese Aufgabe fehl, wenn Fehler in den StandardError Stream geschrieben werden.


bashEnvValue - Festlegen des Werts für BASH_ENV Umgebungsvariablen
string.

Wenn die Eingabe angegeben wird, wird ihr Wert erweitert und als Pfad einer Startdatei verwendet, die vor dem Ausführen des Skripts ausgeführt werden soll. Wenn die Umgebungsvariable BASH_ENV bereits definiert wurde, überschreibt der Task diese Variable nur für die aktuelle Aufgabe. Erfahren Sie mehr über Bash-Startdateien.


noProfile - Laden Sie die Start-/Initialisierungsdateien des Profils nicht.
boolean. Standardwert. true.

Laden Sie nicht die systemweite Startdatei /etc/profile oder eine der persönlichen Initialisierungsdateien.


noRc - **Lesen Sie nicht den ~/.bashrc' initialization file**<br> booleschen. Default value: True'.


Optionen für die Vorgangskontrolle

Alle Vorgänge verfügen zusätzlich zu ihren Eingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Keine.

Hinweise

Die Bash-Aufgabe verfügt in YAML über eine Verknüpfung: steps.bash.

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

Die Bash-Aufgabe findet die erste Bash-Implementierung auf Ihrem System. Wenn Sie unter Linux/macOS oder which bash unter Windows ausgeführt where bash werden, erhalten Sie eine Vorstellung davon, welche Option ausgewählt wird.

Informationen zu Bash-Startdateien

Die Bash-Aufgabe ruft bash als nicht interaktive Shell ohne Anmeldung auf. Wenn Bash nicht interaktiv gestartet wird, sucht bash zum Ausführen eines Shellskripts nach der Variablen BASH_ENV in der Umgebung, entfaltet ihren Wert, wenn er dort angezeigt wird, und verwendet den Wert als Namen einer Datei zum Lesen und Ausführen.

Es gibt mehrere Optionen zum Definieren der Umgebungsvariablen BASH_ENV in einer Pipeline. Erstens ist es möglich, die BASH_ENV Umgebungsvariable als Pipelinevariable festzulegen. In diesem Fall versucht jede instance der Bash-Aufgabe, den Wert der BASH_ENV Variablen zu entfalten und ihren Wert zu verwenden.

variables:
  BASH_ENV: "~/.profile"

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

Eine weitere Möglichkeit besteht darin, für eine bestimmte instance der Bash-Aufgabe festzulegenBASH_ENV. Es gibt zwei Möglichkeiten, wie dies geschehen kann:

Die erste Möglichkeit besteht darin, die bashEnvValue Aufgabeneingabe zu verwenden. Sehen Sie sich ein Beispiel für eine Referenz an:

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

Eine andere Möglichkeit besteht darin, die BASH_ENV Variable als Umgebungsvariable für den Pipelinetask über die env Schlüsselwort (keyword) festzulegen, z. B.:

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

Hinweis

Wenn die bashEnvValue Eingabe in der Bash-Aufgabe definiert ist, überschreibt der Pipelinetask den Wert der BASH_ENV Variablen mit dem Wert aus der bashEnvValue Eingabe, wenn die BASH_ENV Umgebungsvariable bereits in der Umgebung definiert wurde.

Bash-Skripts, die in das Repository eingecheckt werden, sollten als ausführbare Datei (chmod +x) festgelegt werden. Andernfalls werden in der Aufgabe stattdessen eine Warnung und source die Datei angezeigt.

Beispiele

Sie können Variablen mithilfe des Parameters zuordnen, der envfür alle Aufgaben gilt und eine Liste zusätzlicher Elemente ist, die der Umgebung des Prozesses zugeordnet werden sollen. Beispielsweise werden Geheimnisvariablen nicht automatisch zugeordnet. Wenn Sie über eine Geheimnisvariable namens Foo verfügen, können Sie sie wie folgt zuordnen:

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

Unter macOS oder Linux entspricht das obige Beispiel folgendem:

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

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassisches Release
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version 2.115.0 oder höher
Aufgabenkategorie Hilfsprogramm