Sdílet prostřednictvím


Bash@3 – úloha Bash v3

Tuto úlohu použijte ke spuštění skriptu Bash v systému macOS, Linux nebo 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.

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.


filePath - Cesta ke skriptu
string. Vyžaduje se, když targetType = filePath.

Cesta skriptu, který se má spustit. Musí se jednat o plně kvalifikovanou cestu nebo relativní k $(System.DefaultWorkingDirectory).


arguments - Argumenty
string. Nepovinný parametr. Použijte, když targetType = filePath.

Argumenty předané skriptu prostředí. Buď řadové parametry, nebo pojmenované parametry.


script - Skript
string. Vyžaduje se, když targetType = inline. Výchozí hodnota: # Write your commands here\n\necho 'Hello world'.

Obsah skriptu.


script - Skript
string. Vyžaduje se, když targetType = inline. Výchozí hodnota: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

Obsah skriptu.


workingDirectory - Pracovní adresář
string.

Určuje pracovní adresář, ve kterém chcete příkaz spustit. Pokud ho necháte prázdný, bude pracovní adresář $(Build.SourcesDirectory).


failOnStderr - Selhání při standardní chybě
boolean. Výchozí hodnota: false.

Pokud je to pravda, úloha selže, pokud se do datového proudu zapíšou StandardError nějaké chyby.


bashEnvValue - Nastavení hodnoty pro proměnnou prostředí BASH_ENV
string.

Pokud je zadaný vstup, jeho hodnota se rozbalí a použije se jako cesta ke spouštěcímu souboru, který se má spustit před spuštěním skriptu. Pokud už je proměnná BASH_ENV prostředí definovaná, úloha tuto proměnnou přepíše jenom pro aktuální úkol. Přečtěte si další informace o spouštěcích souborech Bash.


noProfile - Nenačítejte spouštěcí nebo inicializační soubory profilu.
boolean. Výchozí hodnota: true.

Nenačítejte spouštěcí soubor /etc/profile celého systému ani žádný z osobních inicializačních souborů.


noRc - **Nečtěte ~/.bashrc' initialization file**<br> logickou. Default value: hodnotu true'.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacích prvků a běžné vlastnosti úlohy.

Výstupní proměnné

Žádné

Poznámky

Úloha Bash má v JAZYCE YAML zástupce: 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ím which bash v Systému Linux/macOS nebo where bash ve Windows získáte představu o tom, který z nich vyberete.

Informace o spouštěcích souborech Bash

Úloha Bash vyvolá prostředí Bash jako neinteraktivní prostředí bez přihlášení. Když se Bash spustí neinteraktivně a spustí skript prostředí, vyhledá v prostředí proměnnou BASH_ENV , rozbalí její hodnotu, pokud se tam objeví, a použije hodnotu jako název souboru ke čtení a spuštění.

Existuje několik možností, jak definovat BASH_ENV proměnnou prostředí v kanálu. Za prvé je možné nastavit proměnnou BASH_ENV prostředí jako proměnnou kanálu. V tomto případě se každá instance úlohy Bash pokusí rozbalit hodnotu BASH_ENV proměnné 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 udělat:

Prvním způsobem je použít vstup úkolu. Příklad najdete v příkladu bashEnvValue :

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

Dalším způsobem je nastavit BASH_ENV proměnnou jako proměnnou prostředí pro úlohu kanálu prostřednictvím klíčového env slova, například:

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

Poznámka

Všimněte si, že pokud bashEnvValue je vstup definovaný v úloze Bash, úloha kanálu přepíše hodnotu BASH_ENV proměnné hodnotou ze bashEnvValue vstupu v případě, že BASH_ENV proměnná prostředí už byla v prostředí definovaná.

Skripty Bash se změnami do úložiště by měly být nastavené jako spustitelné (chmod +x). V opačném případě úkol místo toho zobrazí upozornění a source soubor.

Příklady

V proměnných můžete mapovat pomocí parametru env , který je společný pro všechny úkoly, a je to seznam dalších položek, které se mají mapovat do prostředí procesu. Například tajné proměnné se automaticky nemapují. 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 systému macOS nebo Linux je výše uvedený příklad ekvivalentní:

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

Požadavky

Požadavek Popis
Typy kanálů YAML, klasický build, 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ů Všechny
Nastavitelné proměnné Všechny
Verze agenta 2.115.0 nebo vyšší
Kategorie úloh Nástroj