[英]How to pass ruby variable into sed command in Shell?
这是我的代码。 我想抓住p的值并在匹配1时将其插入到文件changed.txt中。但它没有做我想做的事情,似乎它不知道#{p}是什么
Net::SSH.start( "192.168.2.1", "root", :password => "password") do |ssh|
p = ssh.exec! "java -cp /var/lib/sonar/dev-tools.jar au.com.Tool test"
# puts #{p}
ssh.exec! "sed 's/1/#{p}/g' changed.txt"
end
以你拥有它的方式传递p
值应该可以正常工作。 但是, sed
命令不会更改文件。 如果您希望它在适当的位置更改文件,请使用-i
选项,如下所示:
ssh.exec! "sed -i 's/1/#{p}/g' changed.txt"
或者,如果您想要在其他文件中进行更改,请使用:
ssh.exec! "sed 's/1/#{p}/g' changed.txt > newfile.txt"
另一种选择是:
ssh.exec! "sed -i 's/1/" + p + "/g' changed.txt"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.