Python读取环境变量时MongoDB连接字符串特殊字符处理问题
问题原因与解决方法
问题根源
bash解析环境变量时,会把$external识别为bash变量。由于未定义过external这个变量,bash会将其替换为空字符串,导致最终环境变量中丢失$external部分,Python读取自然出现异常。
解决办法
有两种可靠方式修复该问题:
- 转义$符号:在
$前添加反斜杠\,阻止bash解析该变量:export MGDB_CON_STRING="mongodb://myMGDB:someuname....................server/dbname?authSource=\$external&authMechanism=PLAIN....." - 使用单引号包裹字符串:bash单引号内的内容不会被解析变量,可直接保留
$符号:export MGDB_CON_STRING='mongodb://myMGDB:someuname....................server/dbname?authSource=$external&authMechanism=PLAIN.....'
验证步骤
修改.bashrc后,执行以下命令让配置生效:
source ~/.bashrc
然后用echo $MGDB_CON_STRING查看输出,确认$external部分已正常保留,再运行Python脚本测试即可。
内容的提问来源于stack exchange,提问作者everestial
相关产品推荐
相关产品推荐

