Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby中的字符串连接(Vagrant中Junos vSRX虚拟实验室的脚本配置)_Ruby_Vagrant_String Concatenation_Provisioning_Juniper Network Connect - Fatal编程技术网

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]}\""