1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/shellwords.rb (Shellwords#shellsplit): Document that this

method does not treat shell metacharacters as such.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
knu 2015-12-13 05:19:03 +00:00
parent c53479ae8a
commit 273d5004be
3 changed files with 20 additions and 8 deletions

View file

@ -1,3 +1,8 @@
Sun Dec 13 14:16:09 2015 Akinori MUSHA <knu@iDaemons.org>
* lib/shellwords.rb (Shellwords#shellsplit): Document that this
method does not treat shell metacharacters as such.
Sun Dec 13 12:17:43 2015 Eric Wong <e@80x24.org>
* lib/shellwords.rb (shellescape): duplicate frozen literal

View file

@ -64,6 +64,13 @@ module Shellwords
# argv = Shellwords.split('here are "two words"')
# argv #=> ["here", "are", "two words"]
#
# Note, however, that this is not a command line parser. Shell
# metacharacters except for the single and double quotes and
# backslash are not treated as such.
#
# argv = Shellwords.split('ruby my_prog.rb | less')
# argv #=> ["ruby", "my_prog.rb", "|", "less"]
#
# String#shellsplit is a shortcut for this function.
#
# argv = 'here are "two words"'.shellsplit

View file

@ -6,15 +6,15 @@ class TestShellwords < Test::Unit::TestCase
include Shellwords
def setup
@not_string = Class.new
@cmd = "ruby my_prog.rb | less"
end
def test_shellwords
cmd1 = "ruby -i'.bak' -pe \"sub /foo/, '\\\\&bar'\" foobar\\ me.txt\n"
assert_equal(['ruby', '-i.bak', '-pe', "sub /foo/, '\\&bar'", "foobar me.txt"],
shellwords(cmd1))
def test_string
assert_instance_of(Array, shellwords(@cmd))
assert_equal(4, shellwords(@cmd).length)
# shellwords does not interpret meta-characters
cmd2 = "ruby my_prog.rb | less"
assert_equal(['ruby', 'my_prog.rb', '|', 'less'],
shellwords(cmd2))
end
def test_unmatched_double_quote