Module: Shellwords

Defined in:
lib/standard/facets/shellwords.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) alt_escape(cmdline)

Escape special characters used in most unix shells to use it, eg. with system().

This differs from Ruby's #escape in that it does not escape shell variables, e.g. $0.



12
13
14
# File 'lib/standard/facets/shellwords.rb', line 12

def alt_escape(cmdline)
  cmdline.gsub(/([\\\t\| &`<>)('"])/) { |s| '\\' << s }
end

- (Object) dos_escape(cmdline)

Escape special character used in DOS-based shells.

TODO: How to integrate with rest of system?

  1. Use platform condition?

  2. Use separate dos_xxx methods?

  3. Put in separate PowerShellwords module?

CREDIT: Lavir the Whiolet



30
31
32
# File 'lib/standard/facets/shellwords.rb', line 30

def dos_escape(cmdline)
  '"' + cmdline.gsub(/\\(?=\\*\")/, "\\\\\\").gsub(/\"/, "\\\"").gsub(/\\$/, "\\\\\\").gsub("%", "%%") + '"'
end

- (Object) escape(cmdline)



17
18
19
# File 'lib/standard/facets/shellwords.rb', line 17

def escape(cmdline)
  cmdline.gsub(/([\\\t\| &`<>)('"])/) { |s| '\\' << s }
end