Travis CI的用户文档有一个关于如何逃避安全环境变量的section。它似乎不适用于' $'符号。是否有任何特殊需要为' $'符号
我设置了这个例子。在.travis.yml:
travis encrypt "FAKE_PASSWORD=H3llo\\#Worl\\$d" -a
在我的脚本中,我回显变量并得到:
fake password is H3llo#Worl
$d
似乎没有被替换。我该如何解决这个问题?
答案 0 :(得分:4)
问题是当运行travis encrypt
时,$
符号需要为命令以及使用变量时进行转义。有两个反斜杠\\
,它只在变量中创建一个反斜杠,$d
仍然由bash扩展。使用三个反斜杠可以解决问题。
travis encrypt "FAKE_PASSWORD=H3llo\\#Worl\\\$d" -a
\\
创建一个反斜杠,\$
创建一个未被bash扩展的$符号。当travis运行bash命令来创建该变量时
FAKE_PASSWORD=H3llo\\#World\$d
这是bash在变量中使用$
时所期望的。