我现在看到了一个Vagrant配置:
host.vm.provision :shell, inline: %Q|sudo sh -c 'echo "Defaults env_keep +=\"ETCD_ENDPOINTS\"" >>/etc/sudoers'|
这是%Q
的含义?如果不使用它,可以很好地运作吗?
答案 0 :(得分:1)
%Q|...|
是引用 shell命令(包含其定义)的一种方式,在在Vagrant配置文件中定义的上下文中;它不是shell命令本身的一部分。
Vagrant是用Ruby编写的,Ruby的%Q
- 前缀引用机制是一种方便的方法来封装一个包含 embedded '
和{{引号(作为包含shell命令的字符串可能有),无需担心转义这些字符。在该字符串的定义中。