Teilen über


Bash@3 – Bash v3-Vorgang

Verwenden Sie diese Aufgabe, um ein Bash-Skript unter macOS, Linux oder Windows auszuführen.

Anmerkung

Auf einem Windows-Host wird bash aus der WSL-Standardverteilung ausgeführt. WSL muss installiert sein, und der Benutzer, den der Agent ausführt, muss über ein Verteilungssetup verfügen. WSL wird auf von Microsoft gehosteten Windows-Agentimages installiert. Weitere Informationen finden Sie unter von Microsoft gehosteten Agents – Software-.

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.

Eingänge

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. Wahlfrei. Wird verwendet, wenn targetType = filePath.

Die Argumente, die an das Shellskript übergeben werden. 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, ist das Arbeitsverzeichnis $(Build.SourcesDirectory).


failOnStderr - fehler bei Standardfehler-
boolean. Standardwert: false.

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


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

Wenn die Eingabe angegeben wird, wird der Wert erweitert und als Pfad einer Startdatei verwendet, bevor das Skript ausgeführt wird. Wenn die Umgebungsvariable BASH_ENV bereits definiert wurde, überschreibt die Aufgabe diese Variable nur für den aktuellen Vorgang. Erfahren Sie mehr über Bash Startup Files.


noProfile - Die Profilstart-/Initialisierungsdateien
boolean. Standardwert: true.

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


noRc – **Lesen Sie die ~/.bashrc' initialization file**<br> booleschen. Default value: "true".


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.

Ausgabevariablen

Nichts.

Bemerkungen

Die Bash-Aufgabe verfügt über eine Verknüpfung in YAML: 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 which bash unter Linux/macOS oder where bash unter Windows ausführen, erhalten Sie eine Vorstellung davon, welche sie auswählen wird.

Informationen zu Bash-Startdateien

Die Bash-Aufgabe ruft den Bash als nicht interaktive, nicht-Anmeldeshell auf. Wenn Bash nicht interaktiv gestartet wird, um ein Shellskript auszuführen, sucht der Bash in der Umgebung nach der Variablen BASH_ENV, entfaltet seinen 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 BASH_ENV Umgebungsvariablen in einer Pipeline. Erstens ist es möglich, die BASH_ENV Umgebungsvariable als Pipelinevariable festzulegen. In diesem Fall versucht jede Instanz der Bash-Aufgabe, den Wert der BASH_ENV Variablen zu entfalten und dessen Wert zu verwenden.

variables:
  BASH_ENV: "~/.profile"

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

Eine weitere Option besteht darin, BASH_ENV für eine bestimmte Instanz der Bash-Aufgabe festzulegen, es gibt zwei Möglichkeiten, wie dies möglich ist:

Die erste Möglichkeit besteht darin, die bashEnvValue Vorgangseingabe zu verwenden. Ein Beispiel für eine Referenz finden Sie unter:

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

Eine weitere Möglichkeit besteht darin, die BASH_ENV Variable als Umgebungsvariable für die Pipelineaufgabe über das schlüsselwort env festzulegen, z. B.:

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

Anmerkung

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

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

Beispiele

Sie können Variablen mithilfe des env Parameters zuordnen, der für alle Aufgaben gilt und eine Liste mit zusätzlichen Elementen ist, die der Umgebung des Prozesses zugeordnet werden sollen. Beispielsweise werden geheime Variablen nicht automatisch zugeordnet. Wenn Sie über eine geheime Variable namens Fooverfü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, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.115.0 oder höher
Vorgangskategorie Nützlichkeit