雖然1.8.7版本的內部版本似乎有Shellwords::shellescape
的後端版本,但我知道該方法是1.9版本的功能,並且在早期版本的1.8中肯定不支持。有沒有人知道我在哪裏可以找到,無論是在寶石形式或只是作爲一個片段,強大的獨立實施的Bourne shell命令轉義爲Ruby?Ruby 1.8的Shellwords.shellescape實現
5
A
回答
5
我傷口與Escape寶石去,其中有額外的默認情況下使用引號的功能,必要時僅反斜線轉義。
9
您可能也只是複製你從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
相關問題
- 1. 用於Windows的Ruby Shellwords.shellescape?
- 2. Ruby 1.8 BigDecimal
- 3. Ruby 1.9比Ruby 1.8慢?
- 4. JQuery的手風琴1.8實現
- 5. ruby 1.8 to 1.9 ruby -v顯示ruby 1.9.2p0
- 6. Ruby數組操作(Ruby 1.8和Rails 2.2)
- 7. 「GMT」,而不是用Ruby 1.8
- 8. Rails 1.8的Ruby 1.8和1.9的市場份額
- 9. Rsync:純Ruby實現?
- 10. 實現使用Ruby
- 11. 用Ruby實現樹
- 12. Ruby on Rails的HTTPS實現
- 13. Ruby的實現<=> Combinator
- 14. 在ruby中實現iota
- 15. Ruby MLT實現/示例?
- 16. 在Ruby中實現`call_user_func_array`
- 17. select_layout Ruby實現元編程
- 18. 在網站上實現Ruby
- 19. Nutch的1.8和Apache Solr實現4.8集成作業失敗
- 20. 如何打電話/需要Ruby 1.9的Ruby 1.8 Lib 1.9
- 21. 在我的1.9.3 ruby版本中獲取ruby 1.8錯誤
- 22. 在Ruby 1.8中支持Ruby 1.9的哈希語法
- 23. 我如何在Ruby中實現事實?
- 24. 學習Ruby - 1.8或1.9版本?
- 25. Ruby 1.8和1.9字符串差異
- 26. 我應該學習Ruby 1.8還是1.9?
- 27. ruby 1.8未定義方法`instance_variable_defined?'
- 28. 數據映射在乘客和Ruby 1.8
- 29. 在Ruby 1.8中排序IP地址
- 30. 從Ruby 1.8移動代碼到1.9
謝謝!我用逃逸寶石結束了(見我的回答);但這絕對是一個可行的選擇。順便說一句,根據您鏈接的文件,Ruby是雙重許可的。 – Avdi
關於授權,無論如何這只是一個合理使用(http://en.wikipedia.org/wiki/Fair_use)。正如FSF聲明(http://www.gnu.org/prep/maintain/maintain.html#Legally-Significant):「只有幾行(少於15個)對版權沒有法律意義。」 –