.env含$的环境变量在Rails控制台被截断,如何获取完整值?
解决环境变量值中$被截断的问题
要获取完整的abc$efg值,你需要避免shell将$efg识别为环境变量进行替换,有两种可行的写法:
用反斜杠转义$符号
在.env文件中给$添加反斜杠,让它被当作普通字符处理:TESTMSG=abc\$efg用单引号包裹变量值
单引号会阻止shell解析内部的变量替换逻辑,直接保留原始字符:TESTMSG='abc$efg'
问题原因
shell会把$开头的内容视为环境变量名,尝试替换成对应变量的值。由于$efg这个变量不存在,所以被替换成空字符串,最终只得到abc。双引号包裹时shell依然会解析内部的$变量,所以无法解决问题;而单引号或转义符能让$保持原本的字符意义。
内容的提问来源于stack exchange,提问作者Nidhin S G
相关产品推荐
相关产品推荐

