Shellwords.shellescape实现对Ruby 1.8
题
虽然1.8.7构建我似乎有Shellwords::shellescape
的反向移植版本,我知道这种方法是1.9的功能和绝对较早版本的1.8不支持。有谁知道在哪里可以找到,无论是创业板的形式或只是作为一个片断,一个强大的独立执行的Bourne shell命令逃逸的Ruby?
解决方案 2
我伤口与逃生宝石,其具有使用引号默认的附加特征的,只有反斜杠逃逸时必要的。
其他提示
您可能也只是复制你从 shellwords想要什么。在Ruby的版本库中的主干RB (这是 GPLv2的一>'d):
def shellescape(str)
# An empty argument will be skipped, so return empty quotes.
return "''" if str.empty?
str = str.dup
# Process as a single byte sequence because not all shell
# implementations are multibyte aware.
str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/n, "\\\\\\1")
# A LF cannot be escaped with a backslash because a backslash + LF
# combo is regarded as line continuation and simply ignored.
str.gsub!(/\n/, "'\n'")
return str
end
不隶属于 StackOverflow