【问题标题】:bash script else block not working in Airflow [duplicate]bash 脚本 else 块在 Airflow 中不起作用 [重复]
【发布时间】:2023-01-25 01:39:56
【问题描述】:

我尝试在 Airflow 中实现 if else 条件,如果条件为真,则该条件下的语句将执行。在 else 部分,语句将不会执行并将任务返回为失败

"a=0;" 
"if [[$a -ge "1"]] ; then"
"   echo 'Job Success';"
"else "
"   echo 'Need Investigation';"
"   exit 0;"
"fi;"

此处,如果 a 等于 1,则打印 echo 语句“Job Success” 如果 a 等于 0,则不打印 echo 语句并将相应的 Airflow Dag 标记为失败

【问题讨论】:

  • 另请注意,[[ 不能保证与 /bin/sh 一起使用——确保气流是真的使用 bash 作为它的 shell,或者切换到 if [ "$a" -ge 1 ]; then(适当地转义引号——这是气流文档的一个问题)

标签: bash shell airflow


【解决方案1】:

[[ 是一个外壳命令(从技术上讲,一个关键字)并且在它和它的参数之间需要空格。您可能会看到错误 [[0: command not found

此外,“内部”引号不会被转义(bash 在这里不需要它们):

"if [[ $a -ge 1 ]]; then"

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 2021-05-27
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2011-03-02
    相关资源
    最近更新 更多