Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí této úlohy můžete spustit skript Bash v systému macOS, Linux nebo Windows.
Poznámka
Na hostiteli s Windows se spustí bash z výchozí distribuce WSL. WsL musí být nainstalován a uživatel, který agent běží, jako musí mít instalační program distribuce. WSL se instaluje na image agenta Windows hostované Microsoftem. Další informace naleznete v tématu agenty hostované Microsoftem – Software.
Syntaxe
# 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.
Vstupy
targetType
-
typ
string. Povolené hodnoty: filePath (cesta k souboru), inline. Výchozí hodnota: filePath.
Cílí na typ skriptu: cesta k souboru nebo vložená cesta.
cesta ke skriptu filePath -
string. Požadováno při targetType = filePath.
Cesta ke skriptu, který se má spustit. Musí to být plně kvalifikovaná cesta nebo relativní k $(System.DefaultWorkingDirectory).
argumentů arguments -
string. Volitelný. Používá se při targetType = filePath.
Argumenty předané skriptu prostředí. Buď řadové parametry, nebo pojmenované parametry.
skriptů script -
string. Požadováno při targetType = inline. Výchozí hodnota: # Write your commands here\n\necho 'Hello world'.
Obsah skriptu.
workingDirectory
-
pracovní adresář
string.
Určuje pracovní adresář, ve kterém chcete příkaz spustit. Pokud ho necháte prázdný, pracovní adresář je $(Build.SourcesDirectory).
Selhání failOnStderr - na standardním chyb
boolean. Výchozí hodnota: false.
Pokud je to pravda, tato úloha selže, pokud se do datového proudu StandardError zapíšou nějaké chyby.
bashEnvValue
-
Nastavit hodnotu pro BASH_ENV proměnnou prostředí
string.
Pokud je zadaný vstup, jeho hodnota se rozbalí a použije se jako cesta spouštěcího souboru ke spuštění před spuštěním skriptu. Pokud již byla definována proměnná prostředí BASH_ENV, úkol tuto proměnnou přepíše pouze pro aktuální úkol. Přečtěte si další informace o spouštěcích souborech Bash.
noProfile
-
Nenačítejte spouštěcí/inicializační soubory profilu
boolean. Výchozí hodnota: true.
Nenačítejte spouštěcí soubor v rámci celého systému /etc/profile ani žádných osobních inicializačních souborů.
noRc – **Nepřečte ~/.bashrc' initialization file**<br> logickou hodnotu. Default value: true'.
Možnosti řízení úkolů
Všechny úkoly mají kromě vstupů úkolů také možnosti řízení. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.
Výstupní proměnné
Žádný.
Poznámky
Úloha Bash má zástupce v YAML: steps.bash.
steps:
- bash: string # Required as first property. An inline script.
## Other task inputs
Úloha Bash najde první implementaci Bash ve vašem systému.
Spuštění which bash v Linuxu nebo macOS nebo where bash ve Windows vám poskytne představu o tom, který z nich vybere.
Informace o spouštěcích souborech Bash
Úloha Bash vyvolá Bash jako neinteraktivní prostředí bez přihlášení. Když se Bash spustí neinteraktivně, aby se spustil skript prostředí, Bash vyhledá proměnnou BASH_ENV v prostředí, rozbalí její hodnotu, pokud se tam zobrazí, a použije hodnotu jako název souboru ke čtení a spuštění.
Existuje několik možností pro definování proměnné prostředí BASH_ENV v kanálu. Za prvé je možné nastavit proměnnou prostředí BASH_ENV jako proměnnou kanálu. V tomto případě se každá instance úlohy Bash pokusí rozbalit hodnotu proměnné BASH_ENV a použít její hodnotu.
variables:
BASH_ENV: "~/.profile"
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
Další možností je nastavit BASH_ENV pro jednu konkrétní instanci úlohy Bash, existují dva způsoby, jak to provést:
Prvním způsobem je použít vstup bashEnvValue úkolu, viz příklad odkazu:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
bashEnvValue: '~/.profile'
Dalším způsobem je nastavit proměnnou BASH_ENV jako proměnnou prostředí pro úlohu kanálu prostřednictvím klíčového slova env, například:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Poznámka
Všimněte si, že pokud je bashEnvValue vstup definován v úloze Bash, úloha kanálu přepíše hodnotu BASH_ENV proměnné hodnotou z bashEnvValue vstupu v případě, že proměnná prostředí BASH_ENV již byla v prostředí definována.
Skripty Bash, které jsou v úložišti vráceny se změnami, by měly být nastaveny spustitelné soubory (chmod +x).
V opačném případě se v úloze zobrazí upozornění a místo toho source soubor.
Příklady
V proměnných můžete mapovat pomocí parametru env, který je společný pro všechny úkolya je seznam dalších položek, které se mají namapovat do prostředí procesu.
Například tajné proměnné se nemapují automaticky. Pokud máte tajnou proměnnou s názvem Foo, můžete ji namapovat takto:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: echo $MYSECRET
env:
MYSECRET: $(Foo)
V macOS nebo Linuxu je výše uvedený příklad ekvivalentní:
steps:
- script: echo $MYSECRET
env:
MYSECRET: $(Foo)
Požadavky
| Požadavek | Popis |
|---|---|
| Typy kanálů | YAML, klasické sestavení, klasická verze |
| Běží na | Agent, DeploymentGroup |
| požadavky | Žádný |
| možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
| omezení příkazů | Jakýkoliv |
| nastavitelné proměnné | Jakýkoliv |
| Verze agenta | 2.115.0 nebo vyšší |
| Kategorie úkolu | Užitek |