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
这是怎么回事?我该如何解决这个问题?
Your cmd
字符串中不知何故有一个空(即零)字节。使用puts
不会显示任何空字节,它们只会被排除在输出之外:
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
你可能应该检查一下你的rep
, svn_user
and pxs
正在填充变量以查看是否可以追踪这些空字节的来源,但作为快速修复,您可以使用gsub!
删除它们:
cmd.gsub!(/\0/, '')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)