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

1、在 Shell 脚本中,运行时报错:/config/init/config0.sh line 184 APPID unbound variable。如图1

图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

图3

永夜