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 |