次の方法で共有


Bash@3 - Bash v3 タスク

このタスクは、macOS、Linux、または Windows で Bash スクリプトを実行するために使用します。

構文

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

入力

targetType -
string. 使用できる値: filePath (ファイル パス)、 inline。 既定値: filePath

ターゲット スクリプトの種類: ファイル パスまたはインライン。


filePath - スクリプト パス
string. targetType = filePath の場合に必要です。

実行するスクリプトのパス。 これは、完全修飾パスであるか、 に対する $(System.DefaultWorkingDirectory)相対パスである必要があります。


arguments - 引数
string. 省略可能。 の場合は targetType = filePathを使用します。

シェル スクリプトに渡される引数。 序数パラメーターまたは名前付きパラメーター。


script - スクリプト
string. targetType = inline の場合に必要です。 既定値: # Write your commands here\n\necho 'Hello world'

スクリプトの内容。


script - スクリプト
string. targetType = inline の場合に必要です。 既定値: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script

スクリプトの内容。


workingDirectory - 作業ディレクトリ
string.

コマンドを実行する作業ディレクトリを指定します。 空のままにすると、作業ディレクトリは $(Build.SourcesDirectory) になります。


failOnStderr - 標準エラーで失敗する
boolean. 既定値: false

これが true の場合、ストリームにエラーが書き込まれた StandardError 場合、このタスクは失敗します。


bashEnvValue - 環境変数の値BASH_ENV設定する
string.

入力が指定されている場合、その値は展開され、スクリプトを実行する前に実行するスタートアップ ファイルのパスとして使用されます。 環境変数 BASH_ENV が既に定義されている場合、この変数は、現在のタスクに対してのみ、タスクによってオーバーライドされます。 Bash スタートアップ ファイルの詳細については、こちらを参照してください。


noProfile - プロファイルのスタートアップ/初期化ファイルを読み込まない
boolean. 既定値: true

システム全体のスタートアップ ファイルまたは個人用初期化ファイル /etc/profile を読み込まない。


noRc- **ブール値. Default value: true を~/.bashrc' initialization file**<br> 読み取りません'。


タスク制御オプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。

出力変数

[なし] :

解説

bash タスクには、YAML のショートカットがあります: steps.bash

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

Bash タスクを使用すると、システム上の最初の Bash 実装が検出されます。 Linux/macOS で which bash を実行するか、Windows で where bash を実行すると、どちらが選択されるのかがわかります。

Bash スタートアップ ファイルに関する情報

Bash タスクは、Bash を非対話型の非ログイン シェルとして呼び出します。 Bash が非対話型で起動されると、シェル スクリプトを実行するために、Bash によって、環境内で BASH_ENV が検索され、それが存在する場合にはその値が展開され、その値は読み取って実行するファイルの名前として使用されます。

パイプライン内で BASH_ENV 環境変数を定義するには、いくつかのオプションがあります。 まず、BASH_ENV 環境変数をパイプライン変数として設定できます。 この場合、Bash タスクの各インスタンスによって、BASH_ENV 変数の値の展開とその値の使用が試行されます。

variables:
  BASH_ENV: "~/.profile"

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

他には、Bash タスクの特定の 1 つのインスタンスに対して BASH_ENV を設定するというオプションがあります。これを行うには、次の 2 つの方法があります。

1 つ目は、bashEnvValue タスク入力を使用するという方法です。次の例を参照してください。

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

もう 1 つは、次のように、env キーワードを使用して、BASH_ENV をパイプライン タスクの環境変数として設定するという方法です。

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

注意

bashEnvValue 入力が Bash タスク内で定義されていると、BASH_ENV 環境変数が環境内で既に定義されている場合に、パイプライン タスクによって、bashEnvValue 入力からの値で BASH_ENV 変数の値がオーバーライドされることに注意してください。

リポジトリにチェックインされた Bash スクリプトは、実行可能 (chmod +x) に設定される必要があります。 それ以外の場合は、代わりに、タスクによって警告と source ファイルが表示されます。

パラメーターを env 使用して変数にマップできます。 これはすべてのタスクに共通であり、プロセスの環境にマップするための追加項目の一覧です。 たとえば、シークレット変数は自動的にはマップされません。 Foo という名前のシークレット変数がある場合は、次のようにマップできます。

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

macOS または Linux では、上記の例は次のようになります。

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

要件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
上で実行 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.115.0 以上
タスクのカテゴリ ユーティリティ