日期: 2021年3月31日

  • 在 Shell 脚本中,避免 $APPID$ 报错:/config/init/config0.sh: line 184 APPID unbound variable 的排查分析(避免变量被替换)

    在 Shell 脚本中,避免 $APPID$ 报错:/config/init/config0.sh: line 184 APPID unbound variable 的排查分析(避免变量被替换)

    1、在 Shell 脚本中,运行时报错:/config/init/config0.sh line 184 APPID unbound variable。如图1
    在 Shell 脚本中,运行时报错:configinitconfig0.sh line 184 APPID unbound variable。
    图1
    
    
    /config/init/config0.sh: line 184: APPID: unbound variable
    
    
    
    2、查看 Shell 脚本,其赋值为:https://console.${RMT_MAIN_DOMAIN}/ccpauth/wx-msg-event/$APPID$/receive 。${RMT_MAIN_DOMAIN} 需要被替换为:dev.xxx.cn。$APPID$ 无需要替换,保持原样,但是,现在却被当做变量来处理。因此,报错。
    
    
    if [[ `echo $RMT_MAIN_DOMAIN` == '' ]]
    then
        echo "需要设置 RMT_MAIN_DOMAIN"
        exit 1
    else
        echo "设置的 RMT_MAIN_DOMAIN 为:$RMT_MAIN_DOMAIN"
    fi
    
    env | grep "CHANNEL_PUB_API_CFG_WX_OPEN_COMPONENT_MSG_EVENT_RECEIVE" || export CHANNEL_PUB_API_CFG_WX_OPEN_COMPONENT_MSG_EVENT_RECEIVE="https://console.${RMT_MAIN_DOMAIN}/ccpauth/wx-msg-event/$APPID$/receive"
    
    
    
    3、编辑 Shell 脚本,$APPID$ 修改为:\$APPID\$。在 $ 前添加转义字符。代码如下
    
    
    env | grep "CHANNEL_PUB_API_CFG_WX_OPEN_COMPONENT_MSG_EVENT_RECEIVE" || export CHANNEL_PUB_API_CFG_WX_OPEN_COMPONENT_MSG_EVENT_RECEIVE="https://console.${RMT_MAIN_DOMAIN}/ccpauth/wx-msg-event/\$APPID\$/receive"
    
    
    
    4、运行时,不再报错。查看运行日志,未再报错。如图2
    运行时,不再报错。查看运行日志,未再报错。
    图2
    
    
    CHANNEL_PUB_API_CFG_WX_OPEN_COMPONENT_MSG_EVENT_RECEIVE replace https://console.dev.xxx.cn/ccpauth/wx-msg-event/$APPID$/receive -> /mcloud/www/ccp_api/environments/dev/common/config/params-local.php
    
    
    
    5、查看 /mcloud/www/ccp_api/environments/dev/common/config/params-local.php 中的最终替换结果。${RMT_MAIN_DOMAIN} 需要被替换为:dev.xxx.cn。$APPID$ 无需要替换,保持原样。符合预期。如图3
    查看 /mcloud/www/ccp_api/environments/dev/common/config/params-local.php 中的最终替换结果。${RMT_MAIN_DOMAIN} 需要被替换为:dev.xxx.cn。$APPID$ 无需要替换,保持原样。符合预期。
    图3