0

这是我的代码。我想获取 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
4

1 回答 1

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"
于 2013-08-23T01:19:10.200 回答