bash_operator
Example DAG demonstrating the usage of the BashOperator.
Airflow Fundamentals
Providers:
Modules:
Run this DAG
1. Install the Astronomer CLI:Skip if you already have the CLI
2. Initate the project in a local directory:
3. Copy and paste the code below into a file in thedags
directory.
4. Run the DAG from the local directory where the project was initiated:
## Licensed to the Apache Software Foundation (ASF) under one# or more contributor license agreements. See the NOTICE file# distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file# to you under the Apache License, Version 2.0 (the# "License"); you may not use this file except in compliance# with the License. You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing,# software distributed under the License is distributed on an# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY# KIND, either express or implied. See the License for the# specific language governing permissions and limitations# under the License."""Example DAG demonstrating the usage of the BashOperator."""from __future__ import annotationsimport datetimeimport pendulumfrom airflow.models.dag import DAGfrom airflow.operators.bash import BashOperatorfrom airflow.operators.empty import EmptyOperatorwith DAG(dag_id="example_bash_operator",schedule="0 0 * * *",start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),catchup=False,dagrun_timeout=datetime.timedelta(minutes=60),tags=["example", "example2"],params={"example_key": "example_value"},) as dag:run_this_last = EmptyOperator(task_id="run_this_last",)# [START howto_operator_bash]run_this = BashOperator(task_id="run_after_loop",bash_command="echo 1",)# [END howto_operator_bash]run_this >> run_this_lastfor i in range(3):task = BashOperator(task_id=f"runme_{i}",bash_command='echo "{{ task_instance_key_str }}" && sleep 1',)task >> run_this# [START howto_operator_bash_template]also_run_this = BashOperator(task_id="also_run_this",bash_command='echo "ti_key={{ task_instance_key_str }}"',)# [END howto_operator_bash_template]also_run_this >> run_this_last# [START howto_operator_bash_skip]this_will_skip = BashOperator(task_id="this_will_skip",bash_command='echo "hello world"; exit 99;',dag=dag,)# [END howto_operator_bash_skip]this_will_skip >> run_this_lastif __name__ == "__main__":dag.test()