`exec':字符串包含空字节(ArgumentError)
Posted
技术标签:
【中文标题】`exec\':字符串包含空字节(ArgumentError)【英文标题】:`exec': string contains null byte (ArgumentError)`exec':字符串包含空字节(ArgumentError) 【发布时间】:2012-08-08 06:00:12 【问题描述】: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
怎么了?我该如何解决这个问题?
【问题讨论】:
【参考方案1】:您的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
和 pxs
变量是如何填充的,以查看您是否可以追踪这些空字节的来源,但作为快速修复,您可以使用 gsub!
来删除它们:
cmd.gsub!(/\0/, '')
【讨论】:
以上是关于`exec':字符串包含空字节(ArgumentError)的主要内容,如果未能解决你的问题,请参考以下文章
pip install Chatterbot error 安装 chatterbot 错误值:源代码字符串不能包含空字节