UNIX Bourne シェルの単語分割規則に従った文字列分割と文字列エスケープを行うモジュールです。
Shellwords モジュールは、空白区切りの単語分割を行う shellsplit、文字列をエスケープする shellescape、文字列エスケープを文字列リストに対して適用する shelljoin の3つのモジュール関数を提供します。
これらのメソッドの別名として、Shellwords.split, Shellwords.escape, Shellwords.join も使用可能です。ただし、これらの短縮形式のメソッドはクラスメソッドとしてのみ定義されるため、関数形式の呼び出しはできません。
escape(str) -> String
[permalink][rdoc]文字列を Bourne シェルのコマンドライン中で安全に使えるようにエスケープします。
このメソッドは、Shellwords.#shellescape の別名です。
join(array) -> String
[permalink][rdoc]配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンドライン文字列を生成します。
このメソッドは、Shellwords.#shelljoin の別名です。
split(line) -> [String]
[permalink][rdoc]Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、単語 (文字列) の配列を返します。
このメソッドは、Shellwords.#shellsplit の別名です。
shellescape(str) -> String
[permalink][rdoc]文字列を Bourne シェルのコマンドライン中で安全に使えるようにエスケープします。
例:
require 'shellwords' pattern = 'Jan 15' puts "grep #{Shellwords.shellescape(pattern)} file" # => grep Jan\ 15 file
shelljoin(array) -> String
[permalink][rdoc]配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンドライン文字列を生成します。
個々の配列要素に対するエスケープには、Shellwords.#shellescape と同じ規則が適用されます。
例:
require 'shellwords' pattern = 'Jan 15' file = 'file name with spaces' puts Shellwords.shelljoin(['grep', pattern, file]) # => grep Jan\ 15 file\ name\ with\ spaces
shellsplit(line) -> [String]
[permalink][rdoc]shellwords(line) -> [String]
Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、単語 (文字列) の配列を返します。
空白、シングルクォート (')、ダブルクォート (")、バックスラッシュ (\) を解釈します。
例:
require 'shellwords' p Shellwords.shellwords(%q{ foo bar "foo bar"\ baz 'foo bar' }) # => ["foo", "bar", "foo bar baz", "foo bar"] p Shellwords.shellwords(%q{ A B C "D E F" "G","H I" }) # => ["A", "B", "C", "D E F", "G,H I"]