Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > shellwordsライブラリ > Shellwordsモジュール

module Shellwords

クラスの継承リスト: Shellwords

要約

UNIX Bourne シェルの単語分割規則に従った文字列分割と文字列エスケープ を行うモジュールです。

Shellwords モジュールは、空白区切りの単語分割を行う shellsplit、文字列を エスケープする shellescape、文字列エスケープを文字列リストに対して適用 する shelljoin の3つのモジュール関数を提供します。

これらのメソッドの別名として、Shellwords.split, Shellwords.escape, Shellwords.join も使用可能です。 ただし、これらの短縮形式のメソッドはクラスメソッドとしてのみ定義される ため、関数形式の呼び出しはできません。

特異メソッド

escape(str) -> String

文字列を Bourne シェルのコマンドライン中で安全に使えるようにエスケープします。

このメソッドは、Shellwords.#shellescape の別名です。

[PARAM] str:
エスケープの対象となる文字列を指定します。
[RETURN]
エスケープされた文字列を返します。
join(array) -> String

配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。

このメソッドは、Shellwords.#shelljoin の別名です。

[PARAM] array:
エスケープ対象の文字列を要素とする配列を指定します。
[RETURN]
エスケープ結果を連結した文字列を返します。
split(line) -> [String]

Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、 単語 (文字列) の配列を返します。

このメソッドは、Shellwords.#shellsplit の別名です。

[PARAM] line:
分割の対象となる文字列を指定します。
[RETURN]
分割結果の各文字列を要素とする配列を返します。
[EXCEPTION] ArgumentError:
引数の中に対でないシングルクォートまたはダブル クォートが現れた場合に発生します。

モジュール関数

shellescape(str) -> String

文字列を Bourne シェルのコマンドライン中で安全に使えるようにエスケープします。

[PARAM] str:
エスケープの対象となる文字列を指定します。
[RETURN]
エスケープされた文字列を返します。

例:

require 'shellwords'

pattern = 'Jan 15'
puts "grep #{Shellwords.shellescape(pattern)} file"
# => grep Jan\ 15 file
shelljoin(array) -> String

配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。

個々の配列要素に対するエスケープには、Shellwords.#shellescape と 同じ規則が適用されます。

[PARAM] array:
エスケープ対象の文字列を要素とする配列を指定します。
[RETURN]
エスケープ結果を連結した文字列を返します。

例:

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]
shellwords(line) -> [String]

Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、 単語 (文字列) の配列を返します。

空白、シングルクォート (')、ダブルクォート (")、バックスラッシュ (\) を解釈します。

[PARAM] line:
分割の対象となる文字列を指定します。
[RETURN]
分割結果の各文字列を要素とする配列を返します。
[EXCEPTION] ArgumentError:
引数の中に対でないシングルクォートまたはダブル クォートが現れた場合に発生します。

例:

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"]
module Shellwords