Skip to content

End of Life Ruby 3.0 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →

class method

Shellwords.shellsplit

shellsplit(line)

Splits a string into an array of tokens in the same way the UNIX Bourne shell does.

Example
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.

Example
argv = Shellwords.split('ruby my_prog.rb | less')
argv #=> ["ruby", "my_prog.rb", "|", "less"]

String#shellsplit is a shortcut for this function.

Example
argv = 'here are "two words"'.shellsplit
argv #=> ["here", "are", "two words"]
See also #shellsplit .shelljoin .shellwords .shellescape also in 4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.1