Ruby中的字符串连接(Vagrant中Junos vSRX虚拟实验室的脚本配置)
我有以下正在工作的命令:Ruby中的字符串连接(Vagrant中Junos vSRX虚拟实验室的脚本配置),ruby,vagrant,string-concatenation,provisioning,juniper-network-connect,Ruby,Vagrant,String Concatenation,Provisioning,Juniper Network Connect,我有以下正在工作的命令: my_host_shell.inline = 'vagrant ssh router3 -c "/usr/sbin/cli -f /tmp/provision01_router3.sh"' (“vagrant ssh”在主机中启动,连接到虚拟机,在虚拟机中,它将“Provisionion01_router3.sh”脚本(已位于VM中)馈送到cli解释器) 现在我想用变量替换“router3”和“Provisionion01_router3.sh”字符串,因为它们对于每
my_host_shell.inline = 'vagrant ssh router3 -c "/usr/sbin/cli -f /tmp/provision01_router3.sh"'
(“vagrant ssh”在主机中启动,连接到虚拟机,在虚拟机中,它将“Provisionion01_router3.sh”脚本(已位于VM中)馈送到cli解释器)
现在我想用变量替换“router3”和“Provisionion01_router3.sh”字符串,因为它们对于每个虚拟机都是不同的。
我尝试了很多方法,包括跟随,但没有一种是有效的
my_host_shell.inline = '"vagrant ssh " + node.vm.hostname + " -c /usr/sbin/cli -f /tmp/" + script[:script_name]'
你能帮我调试这行吗
这里是完整的Vagrant文件(请参见最后几行):
使用字符串插值;这将使您的代码更具可读性:
my_host_shell.inline = "vagrant ssh #{node.vm.hostname} -c \"/usr/sbin/cli -f /tmp/#{script[:script_name]}\""
my_host_shell.inline = "vagrant ssh #{node.vm.hostname} -c \"/usr/sbin/cli -f /tmp/#{script[:script_name]}\""