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 env
fü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 |