2012-08-10 15 views
7
cmd = "snv co #{rep} --username #{svn_user} --password #{pxs}" 

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

exec(cmd) 
xpto.rb:69:in `exec': string contains null byte (ArgumentError) 
    from xpto.rb:69 
$ ruby -v 
ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux] 
$ gem -v 
1.3.7 

, was los ist? Wie kann ich das lösen?`exec ': string enthält null Byte (Argument)

Antwort

10

Ihre cmd Zeichenfolge hat irgendwie ein null (d. H. Null) Byte.

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 

Sie sollten wahrscheinlich überprüfen, wie Ihre rep, svn_user und pxs Variablen bevölkert werden, um zu sehen, ob Sie verfolgen können: Mit puts wird keine Null-Bytes nicht auftauchen, werden sie gerade aus dem Ausgang gelassen werden down die Quelle dieser Null-Bytes, aber als eine schnelle Lösung könnten Sie gsub! verwenden, um sie zu entfernen:

cmd.gsub!(/\0/, '')