在Ruby脚本的密码中转义&字符('&')

ovfsdjhp  于 2022-11-29  发布在  Ruby
关注(0)|答案(1)|浏览(184)

我有一个类似“X&Y”的密码,我试图运行一个Ruby脚本来打开SSH会话,但脚本在&字符处中断,如:

  • 服务器:X * 服务器:bash:Y:找不到命令

逃避像&这样的角色也没有帮助。想法很感激!
发生这种情况的代码位于ssh.exec中:

pass="X\&Y"
Net::SSH.start( host_name, user, :password => pass ) do |ssh|
   #do stuff
   command = "sudo -S rm file"
   cmd = "#{pass}|#{command}"
   ssh.exec(cmd) do |ch, stream, data|
     puts "*server:" + data.inspect
   end
end
wydwbb8l

wydwbb8l1#

您可以像使用ssh一样使用&,而不使用任何特殊含义:

ssh -t -t user@localhost "echo 'abc&def'"
abc&def
Connection to localhost closed.

相关问题