Bash@3 — zadanie powłoki Bash w wersji 3

To zadanie służy do uruchamiania skryptu powłoki Bash w systemach macOS, Linux lub Windows.

Składnia

# 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.

Dane wejściowe

targetType - Typu
string. Dozwolone wartości: filePath (Ścieżka pliku), inline. Wartość domyślna: filePath.

Typ skryptu obiektów docelowych: ścieżka pliku lub śródliniowa.


filePath - Ścieżka skryptu
string. Wymagane, gdy targetType = filePath.

Ścieżka skryptu do wykonania. Musi to być w pełni kwalifikowana ścieżka lub względem $(System.DefaultWorkingDirectory).


arguments - Argumenty
string. Opcjonalny. Użyj polecenia , gdy targetType = filePath.

Argumenty przekazane do skryptu powłoki. Parametry porządkowe lub nazwane.


script - Skrypt
string. Wymagane, gdy targetType = inline. Wartość domyślna: # Write your commands here\n\necho 'Hello world'.

Zawartość skryptu.


script - Skrypt
string. Wymagane, gdy targetType = inline. Wartość domyślna: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

Zawartość skryptu.


workingDirectory - Katalog roboczy
string.

Określa katalog roboczy, w którym chcesz uruchomić polecenie. Jeśli pozostawisz go pusty, katalog roboczy to $(Build.SourcesDirectory).


failOnStderr - Błąd standardowy kończy się niepowodzeniem
boolean. Wartość domyślna: false.

Jeśli tak jest, to zadanie zakończy się niepowodzeniem, jeśli do strumienia StandardError zostaną zapisane jakiekolwiek błędy.


bashEnvValue - Ustaw wartość zmiennej środowiskowej BASH_ENV
string.

Jeśli dane wejściowe zostaną określone, jego wartość zostanie rozwinięta i użyta jako ścieżka pliku startowego do wykonania przed uruchomieniem skryptu. Jeśli zmienna środowiskowa BASH_ENV została już zdefiniowana, zadanie zastąpi tę zmienną tylko dla bieżącego zadania. Dowiedz się więcej o plikach uruchamiania powłoki Bash.


noProfile - Nie ładuj plików uruchamiania/inicjowania profilu
boolean. Wartość domyślna: true.

Nie ładuj pliku /etc/profile uruchamiania całego systemu ani żadnych osobistych plików inicjowania.


noRc- **Nie odczytuj wartości logicznej ~/.bashrc' initialization file**<br> . Default value: true".


Opcje sterowania zadania

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.

Zmienne wyjściowe

Brak.

Uwagi

Zadanie powłoki bash ma skrót w języku YAML: steps.bash.

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

Zadanie powłoki Bash znajdzie pierwszą implementację powłoki Bash w systemie. Uruchomione which bash w systemie Linux/macOS lub where bash w systemie Windows zapewni ci pomysł, który wybierze.

Informacje o plikach uruchamiania powłoki Bash

Zadanie powłoki Bash wywołuje powłokę Bash jako nieinterakcyjną, nieinterakcyjną powłokę bez logowania. Gdy powłoka Bash jest uruchamiana nieinterakcyjnie, aby uruchomić skrypt powłoki, powłoka Bash szuka zmiennej BASH_ENV w środowisku, rozwija jego wartość, jeśli się tam pojawi, i używa wartości jako nazwy pliku do odczytu i wykonywania.

Istnieje kilka opcji definiowania zmiennej BASH_ENV środowiskowej w potoku. Po pierwsze można ustawić zmienną BASH_ENV środowiskową jako zmienną potoku. W takim przypadku każde wystąpienie zadania powłoki Bash spróbuje rozwinąć wartość zmiennej BASH_ENV i użyć jej wartości.

variables:
  BASH_ENV: "~/.profile"

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

Inną opcją jest ustawienie BASH_ENV dla jednego konkretnego wystąpienia zadania powłoki Bash, istnieją dwa sposoby, w jaki można to zrobić:

Pierwszym sposobem jest użycie danych wejściowych bashEnvValue zadania, zobacz przykład referencyjny:

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

Innym sposobem jest ustawienie zmiennej BASH_ENV jako zmiennej środowiskowej dla zadania potoku za pomocą słowa kluczowego env , na przykład:

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

Uwaga

Należy pamiętać, że jeśli bashEnvValue dane wejściowe są zdefiniowane w zadaniu powłoki Bash, zadanie potoku zastąpi wartość BASH_ENV zmiennej wartością z bashEnvValue danych wejściowych w przypadku, gdy BASH_ENV zmienna środowiskowa została już zdefiniowana w środowisku.

Skrypty powłoki Bash zaewidencjonowane w repozytorium powinny być ustawione jako wykonywalne (chmod +x). W przeciwnym razie zadanie wyświetli ostrzeżenie i source plik.

Przykłady

Możesz mapować zmienne przy użyciu parametru env , który jest wspólny we wszystkich zadaniach, i jest listą dodatkowych elementów do mapowania w środowisku procesu. Na przykład zmienne tajne nie są automatycznie mapowane. Jeśli masz zmienną wpisu tajnego o nazwie Foo, możesz zamapować ją w następujący sposób:

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

W systemie macOS lub Linux powyższy przykład jest odpowiednikiem:

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

Wymagania

Wymaganie Opis
Typy potoków YAML, kompilacja klasyczna, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Brak
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolne
Zmienne w formie tabeli settable Dowolne
Wersja agenta 2.115.0 lub nowsza
Kategoria zadania Narzędzie