Skip to content
class method

Shellwords.shellsplit

(::String line) -> ::Array[::String]
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"]

line must not contain NUL characters because of nature of exec system call.

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 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0