在 Shell 脚本中,避免 $APPID$ 报错:/config/init/config0.sh: line 184 APPID unbound variable 的排查分析(避免变量被替换)
1、在 Shell 脚本中,运行时报错:/config/init/config0.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
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
近期评论