这是我的代码。我想抓住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
答案 0 :(得分:2)
以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"