首页 > 解决方案 > bash 脚本因预期二进制运算符而失败

问题描述

我有一个 bash 脚本,它检查一个特定的字符串并继续进行,但似乎在预期二进制运算符时出现了一些错误

    local artifacts=$(realpath artifacts)/middle-end
    local env
    local account_id=${1}
    local branch_name=${2}
    local user_environments=${3}
    local gitlab_user_id=${4}
    env=$(ci/scripts/get-details-env.py -m "${user_environments}" -u "${user_id}")

    # Deploy to int1 from develop
    echo "$branch_name"
    if [ "${branch_name}" == "develop" ]; then
      env=brt-int;
    fi
    if [ "${branch_name}" =~ ^brt-rc-.* ]; then
      env=brt-uat;
    fi

    mkdir -p ${artifacts}
    cd middle-end
    ln -s ${NODE_PATH} ./node_modules
    npm run build

标签: bash

解决方案


我知道您的问题是什么,您必须使用新的测试运算符[[。[ http://mywiki.wooledge.org/BashFAQ/031][bash新测试详情]

if [[ "${branch_name}" =~ ^atf-rc-.* ]]; then
              env=atf-stage1;
            fi

推荐阅读