`exec': string contains null byte (ArgumentError)

后端 未结 1 579
遥遥无期
遥遥无期 2021-01-02 19:06
cmd = \"snv co #{rep} --username #{svn_user} --password #{pxs}\" 

puts cmd  # this code wotks and prints all vars values normally

exec(cmd)   
相关标签:
1条回答
  • 2021-01-02 19:43

    Your cmd string has got a null (i.e. zero) byte in it somehow. Using puts won’t show up any null bytes, they’ll just be left out of the output:

    1.8.7 :001 > exec "\0"
    ArgumentError: string contains null byte
            from (irb):1:in `exec'
            from (irb):1
    1.8.7 :002 > puts "n\0n"
    nn
     => nil 
    

    You should probably check how your rep, svn_user and pxs variables are being populated to see if you can track down the source of these null bytes, but as a quick fix you could use gsub! to remove them:

    cmd.gsub!(/\0/, '')
    
    0 讨论(0)
提交回复
热议问题