Compartir vía


Bash@3: tarea de Bash v3

Use esta tarea para ejecutar un script de Bash en macOS, Linux o 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.

Entradas

targetType - Tipo
string. Valores permitidos: filePath (Ruta de acceso del archivo), inline. Valor predeterminado: filePath.

Tipo de script de destinos: ruta de acceso del archivo o insertada.


filePath - Ruta de acceso del script
string. Necesario cuando targetType = filePath.

Ruta de acceso del script que se va a ejecutar. Debe ser una ruta de acceso completa o relativa a $(System.DefaultWorkingDirectory).


arguments - Argumentos
string. Opcional. Use cuando targetType = filePath.

Argumentos pasados al script de shell. Parámetros ordinales o parámetros con nombre.


script - Guión
string. Necesario cuando targetType = inline. Valor predeterminado: # Write your commands here\n\necho 'Hello world'.

Contenido del script.


script - Guión
string. Necesario cuando targetType = inline. Valor predeterminado: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

Contenido del script.


workingDirectory - Directorio de trabajo
string.

Especifica el directorio de trabajo en el que desea ejecutar el comando. Si lo deja vacío, el directorio de trabajo es $(Build.SourcesDirectory).


failOnStderr - Error en el error estándar
boolean. Valor predeterminado: false.

Si esto es cierto, se producirá un error en esta tarea si se escribe algún error en la StandardError secuencia.


bashEnvValue - Establecer valor para BASH_ENV variable de entorno
string.

Si se especifica la entrada, su valor se expande y se usa como ruta de acceso de un archivo de inicio que se va a ejecutar antes de ejecutar el script. Si ya se ha definido la variable de entorno BASH_ENV, la tarea invalidará esta variable solo para la tarea actual. Más información sobre los archivos de inicio de Bash.


noProfile - No cargue los archivos de inicio o inicialización del perfil
boolean. Valor predeterminado: true.

No cargue el archivo /etc/profile de inicio en todo el sistema ni ninguno de los archivos de inicialización personal.


noRc - **No lea el ~/.bashrc' initialization file**<br> valor booleano. Default value: true'.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Comentarios

La tarea bash tiene un acceso directo en YAML: steps.bash.

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

La tarea Bash encontrará la primera implementación de Bash en el sistema. La ejecución de which bash en Linux o macOS o de where bash en Windows le dará una idea de cuál seleccionará.

Información sobre los archivos de inicio de Bash

La tarea Bash invoca a Bash como un shell no interactivo que no es de inicio de sesión. Cuando Bash se inicia de forma no interactiva, para ejecutar un script de shell, Bash busca la variable BASH_ENV en el entorno, despliega su valor si aparece allí y lo usa como nombre de un archivo para leer y ejecutar.

Hay varias opciones para definir la variable de entorno BASH_ENV en una canalización. En primer lugar, es posible establecer la variable de entorno BASH_ENV como una variable de canalización. En este caso, cada instancia de la tarea Bash intentará desplegar el valor de la variable BASH_ENV y usar su valor.

variables:
  BASH_ENV: "~/.profile"

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

Otra opción es establecer BASH_ENV para una instancia determinada de la tarea Bash, lo cual se puede hacer de dos maneras:

La primera manera es usar la entrada de tareas bashEnvValue. Consulte un ejemplo de referencia:

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

Otra manera es establecer la variable BASH_ENV como una variable de entorno para la tarea de canalización a través de la palabra clave env, por ejemplo:

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

Nota:

Tenga en cuenta que si la entrada bashEnvValue se define en la tarea Bash, la tarea de canalización invalidará el valor de la variable BASH_ENV con el valor de la entrada bashEnvValue en un caso en el que la variable de entorno BASH_ENV ya estaba definida en el entorno.

Los scripts de Bash protegidos en el repositorio deben establecerse como ejecutables (chmod +x). De lo contrario, la tarea mostrará una advertencia y source el archivo en su lugar.

Ejemplos

Puede asignar en variables mediante el env parámetro que es común en todas las tareas y es una lista de elementos adicionales que se van a asignar al entorno del proceso. Por ejemplo, las variables secretas no se asignan automáticamente. Si tiene una variable secreta denominada Foo, puede asignarla de la siguiente manera:

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

En macOS o Linux, el ejemplo anterior es equivalente a:

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

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 2.115.0 o superior
Categoría de la tarea: Utilidad