gpt4 book ai didi

ruby - Ruby 1.8 的 Shellwords.shellescape 实现

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:35 25 4
gpt4 key购买 nike

虽然 1.8.7 的构建我似乎有一个向后移植的 Shellwords::shellescape 版本,但我知道该方法是 1.9 的一个特性,在 1.8 的早期版本中绝对不支持.有谁知道我在哪里可以找到(以 Gem 形式或仅作为片段)针对 Ruby 转义的 Bourne-shell 命令的强大独立实现?

最佳答案

您也可以从shellwords.rb 中复制您想要的内容。在 Ruby 的颠覆存储库的主干中(即 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

关于ruby - Ruby 1.8 的 Shellwords.shellescape 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1306680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com