如果我将这样的内容添加到 Vagrantfile
的适当位置:
vm.provision "shell",
path: "my_node.sh",
env: {"MY_VARIABLE"=>ENV['CONTAINS_A_DOLLAR_SIGN']}
在我的 my_node.sh
中添加以下内容:
echo "$MY_VARIABLE"
如果我的 CONTAINS_A_DOLLAR_SIGN
环境变量是 before$after
我的 vagrant up
输出将包含 before
但不包含 $之后
。
如何在 Vagrantfile
中解决此问题?
最佳答案
根据 @matt-schuchard 的提示,我将其添加到 Vagrantfile 的顶部:
require 'shellwords'
改变了
env: {"MY_VARIABLE"=>ENV['CONTAINS_A_DOLLAR_SIGN']}
至
env: {"MY_VARIABLE"=>Shellwords.escape(ENV['CONTAINS_A_DOLLAR_SIGN'])}
现在vagrant up
输出before$after
而不仅仅是before
!
关于ruby - Vagrantfile:如何传递带有未转义美元符号的主机环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57223572/