Options

前 - 次 - 目次

# コマンドラインオプション

Rubyインタプリタは以下のコマンドラインオプションを受け付けま す．基本的にPerlのものと良く似ています．

`-0数字`
  入力レコードセパレータ(``$/`')の8進数で指定します． 数字を指定しない場合はヌルキャラクタがセパレータになります． 数の後に他のスイッチがあっても構いません． `-00`で, パラグラフモード, `-0777`で (そのコードを持つ文字は存在しないので)全ファイルを一度に読み 込むモードに設定できます．
`-a`
  `-n'や`-p'とともに用いて, オートスプリットモードをONにします． オートスプリットモードでは各ループの先頭で,

      	$F = $_.split

  が実行されます．`-n'か`-p'オプションが同時に指定されない限り, このオプションは意味を持ちません．
`-c`
  スクリプトの内部形式へのコンパイルのみを行い, 実行しません．コンパイル終 了後, 文法エラーが無ければ, "Syntax OK"と出力します．
`-Kc`
  Rubyの処理する漢字コードを指定します． Rubyは指定された文字 が `E'または`e'の場合は文字列やアクセスするファイルの内容の コードがEUCであると仮定します．同様に`S'または`s'の場合は SJISとして処理します．`N'は漢字を処理しません．デフォルトは EUCです．

  このオプションは将来文字コードの取扱いが変更された場合等には 変更される可能性があります．

`-d`
`--debug`
  デバッグモードをonにします．このフラグがセットされるとシステ ム変数``$DEBUG`'がセットされます．
`-e script`
  コマンドラインからスクリプトを指定します．`-e`オ プションを付けた時には引数からスクリプトファイル名を取りませ ん．
`-F regexp`
  入力フィールドセパレータ(``$;`')の値を文字列にセッ トします．
`-h`
`--help`
  コマンドラインオプションの概要を表示します．
`-i [extension]`
  引数で指定されたファイルの内容を置き換える(in-place edit)こ とを指定します．元のファイルは拡張子をつけた形で保存されます． 拡張子がなければ，バックアップは行われず，変更されたファイル だけが残ります．

  例:

      	% echo matz > /tmp/junk
      	% cat /tmp/junk
      	matz
      	% ruby -p -i.bak -e '$_.upcase!' /tmp/junk
      	% cat /tmp/junk
      	MATZ
      	% cat /tmp/junk.bak
      	matz

`-I directory`
  ファイルをロードするパスを指定(追加)します．指定されたディレ クトリはRubyの配列変数(``$:`')に追加されます．
`-l`
  行末の自動処理を行います．まず，``$\`'を ``$/`'と同じ値に設定し, `print`での出力 時に改行を付加するようにします．それから, `-n` フラグまたは`-p`フラグが指定されていると `gets` で読み込まれた各行の最後に対して `chop!`を行います．
`-n`
  このフラグがセットされるとプログラム全体が `sed -n`や`awk` のように

      	while gets
      	  ...
      	end

  で囲まれているように動作します.
`-p`
  `-n`フラグとほぼ同じだが, 各ループの最後に変数``$_`' の値を出力するようになります．

  例:

      	% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"'
      	MATZ

`-r ファイル名`
  スクリプト実行前にファイル名で指定されるファイルを `require`します． `-n'オプション，`-p'オプションとともに使う時に特に有効です．
`-s`
  スクリプト名に続く, `-'で始まる引数を解釈して, 同名の大域変数に値 を設定します．`--'なる引数以降は解釈を行ないません．該当する引数は ``$ARGV`'から取り除かれます．

  例:

      	#! /usr/local/bin/ruby -s
      	# prints "true" if invoked with `-xyz' switch.
      	print "true\n" if $xyz

`-S`
  スクリプト名が`/'で始まっていない場合, 環境変数 `PATH`の値を使ってスクリプトを探すことを指定しま す． これは、``#!`'をサポートしていないマシンで、 ``#!`' による実行をエミュレートするために、以下の ようにして使うことができます:

      	#!/bin/sh
      	exec ruby -S -x $0 "$@"
              #! ruby

  システムは最初の行により，スクリプトを`/bin/sh` に渡します．`/bin/sh`は2行目を実行しRubyインタプリタを起動します． Rubyインタプリタは`-x` オプションにより`#!'で始まり, "ruby"という文字列を含む行までを 読み飛ばします．

  システムによっては `$0`は必ずしもフルパスを含まな いので，`-S'を用いてRubyに必要に応じてスクリプトを探すように 指示する必要があります．

`-T [level]`
  不純度チェックを行います．レベルを指定すると安全度レベルをそ のレベルに設定します．CGIプログラムなどでは`-T1` 程度を指定しておく方が良いでしょう．
`-v`
`--verbose`
  冗長モード．起動時にバージョンの表示を行い, システム変数 `$VERBOSE`をTRUEにセットします．この変数がTRUEで ある時, いくつかのメソッドは実行時に冗長なメッセージを出力し ます．`-v'オプションが指定されて, それ以外の引数がない時には バージョンを表示した後, 実行を終了します(標準入力からのスク リプトを待たない).
`--version`
  Rubyのバージョンを表示します．
`-w`
  バージョンの表示を行う事無く冗長モードになります．
`-x[directory]`
  メッセージ中のスクリプトを取り出して実行します．スクリプトを 読み込む時に，`#!'で始まり, "ruby"という文字列を含む行までを 読み飛ばします．スクリプトの終りは`EOF`(ファイル の終り), `^D`(コントロールD), `^Z`(コ ントロールZ)または予約語`__END__`で指定されます． ディレクトリ名を指定すると，スクリプト実行前に指定されたディ レクトリに移動します．
`-X directory`
  スクリプト実行前に指定されたディレクトリに移動します．
`-y`
`--yydebug`
  コンパイラデバッグモード．スクリプトを内部表現にコンパイルす る時の構文解析の過程を表示します．この表示は非常に冗長なので, コンパイラそのものをデバッグする人以外には必要ないと思います．

前 - 次 - 目次

matz@netlab.co.jp