

echo $1
ls -al

chmod +x ./select_fruit.sh
./select_fruit.sh WSW
그러면 아까 명령어에 맞춰서, 첫번째 입력 변수를 출력합니다.

그럼 쉘 스크립트를 조금 더 응용해보겠습니다.
FRUIT=$1
if [ $FRUIT == APPLE ]; then
echo "You selected Apple!"
elif [ $FRUIT == ORANGE ]; then
echo "You selected ORANGE!"
elif [ $FRUIT == GRAPE ]; then
echo "You selected GRAPE!"
else
echo "You selected Nothing!"
fi
bash operator를 이용해서 DAG를 만들어봅니다.
DAG를 실행하는 주체는 Worker이기 때문에, Worker 컨테이너의 bash를 사용합니다.
from airflow import DAG
from airflow.operators.bash import BashOperator
import datetime
import pendulum
from airflow import DAG
from airflow.operators.bash import BashOperator
import datetime
import pendulum
with DAG(
dag_id="dags_bash_select_fruit",
schedule="10 0 * * 6#1",
start_date=pendulum.datetime(2023, 3, 1, tz="Asia/Seoul"),
catchup=False,
) as dag:
t1_orange = BashOperator(
task_id="t1_orange",
bash_command="/opt/airflow/plugins/shell/select_fruit.sh ORANGE",
)
t2_avocado = BashOperator(
task_id="t2_avocado",
bash_command="/opt/airflow/plugins/shell/select_fruit.sh AVOCADO",
)
t1_orange >> t2_avocado



만약 DAG를 UnPause 했을 때, 즉 DAG를 처음 실행했을 때, 오늘 날짜가 Data Interval 안에 있다면, 기본적으로 이전 execution_date로 DAG를 동작시킵니다.
반면 Data Interval보다 큰 End date보다 큰 시점에 있다면, DAG를 동작시키지 않습니다. 이 때 만약 실행시켜주고 싶다면, Trigger DAG를 이용해서 실행시켜줍니다.
