airflow.operators.bash_operator

Module Contents

class airflow.operators.bash_operator.BashOperator(bash_command:str, env:Dict[str, str]=None, output_encoding:str='utf-8', *args, **kwargs)[source]

Bases: airflow.models.BaseOperator

Execute a Bash script, command or set of commands.

See also

For more information on how to use this operator, take a look at the guide: BashOperator

If BaseOperator.do_xcom_push is True, the last line written to stdout will also be pushed to an XCom when the bash command completes

Parameters
  • bash_command (str) – The command, set of commands or reference to a bash script (must be ‘.sh’) to be executed. (templated)

  • env (dict) – If env is not None, it must be a mapping that defines the environment variables for the new process; these are used instead of inheriting the current process environment, which is the default behavior. (templated)

  • output_encoding (str) – Output encoding of bash command

On execution of this operator the task will be up for retry when exception is raised. However, if a sub-command exits with non-zero value Airflow will not recognize it as failure unless the whole shell exits with a failure. The easiest way of achieving this is to prefix the command with set -e; Example:

bash_command = "set -e; python3 script.py '{{ next_execution_date }}'"
template_fields = ['bash_command', 'env'][source]
template_ext = ['.sh', '.bash'][source]
ui_color = #f0ede4[source]
execute(self, context)[source]

Execute the bash command in a temporary directory which will be cleaned afterwards

on_kill(self)[source]