- Inheritance
This module manipulates strings according to the word parsing rules of the UNIX Bourne shell.
The shellwords() function was originally a port of shellwords.pl, but modified to conform to POSIX / SUSv3 (IEEE Std 1003.1-2001).
Authors:
- Wakou Aoyama - Akinori MUSHA <knu@iDaemons.org>
Contact:
- Akinori MUSHA <knu@iDaemons.org> (current maintainer)
Methods
Instance
Visibility | Signature |
---|---|
public | escape (str) |
public | join (array) |
public | shellescape (str) |
public | shelljoin (array) |
public | shellsplit (line) |
public | shellwords (line) |
public | split (line) |
Instance Method Detail
escape(str)
Alias for shellescape
join(array)
Alias for shelljoin
shellescape(str)
Escapes a string so that it can be safely used in a Bourne shell command line.
Note that a resulted string should be used unquoted and is not intended for use in double quotes nor in single quotes.
open("| grep #{Shellwords.escape(pattern)} file") { |pipe| # ... }
+String#shellescape+ is a shorthand for this function.
open("| grep #{pattern.shellescape} file") { |pipe| # ... }
shelljoin(array)
Builds a command line string from an argument list array joining all elements escaped for Bourne shell and separated by a space.
open('|' + Shellwords.join(['grep', pattern, *files])) { |pipe| # ... }
+Array#shelljoin+ is a shorthand for this function.
open('|' + ['grep', pattern, *files].shelljoin) { |pipe| # ... }
shellsplit(line)
Splits a string into an array of tokens in the same way the UNIX Bourne shell does.
argv = Shellwords.split('here are "two words"') argv #=> ["here", "are", "two words"]
+String#shellsplit+ is a shorthand for this function.
argv = 'here are "two words"'.shellsplit argv #=> ["here", "are", "two words"]
shellwords(line)
Alias for shellsplit
split(line)
Alias for shellsplit