コンテンツにスキップ

実行環境

組み込み定数

組み込み定数
STDIN 標準入力
SDTOUT 標準出力
STDERR 標準エラー出力
ENV 環境変数
ARGF スクリプトに指定した引数(ARGV)をファイル名とみなして、それらのファイルを連結したもの
ARGV Ruby スクリプトに与えられた引数
DATA __END__ 以降をアクセスする File オブジェクト

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

オプション 指定した時の動作
-h ヘルプを表示する
-v バージョンを表示する
-c 指定したファイルが文法的に正しいか確認する。実行はしない
-e 指定された文字列を Ruby プログラムとして実行する
-w 冗長モードでの実行。普段出力しないワーニングが出力される
-W0, -W1, -W2, -W 出力範囲を指定した冗長モードでの実行。-W, -W2 では全て出力する
-l $LOAD_PATH に、指定された文字列を追加する
-r スクリプト実行前に、指定されたファイルを実行する
-d デバッグモードで実行する

主な環境変数

環境変数 使用用途
RUBYOPT デフォルトで指定するコマンドラインオプションを指定
RUBYLIB デフォルトでライブラリを検索するパスを指定
PATH Ruby 上から実行したコマンドを検索するパスを指定

主な特殊変数

変数名 参照される値
$_ 最後に getsreadline で読み込んだ文字列
$& 最後にマッチした文字列
$~ 最後に成功したマッチに対する結果。$~[n] で参照できる
$` マッチした部分より前の文字列
$' マッチした部分より後の文字列
$+ マッチした中で最後のカッコに対応する文字列
$1, $2, ... n番目のカッコに対応する文字列
$? 最後に終了した子プロセスのステータス
$! 直近で補足した例外オブジェクト
$@ バックトレースを表す配列
$0 現在実行中のプログラムファイル名
$* Rubyスクリプトに与えられた引数
$: loadrequire の検索パス($LOAD_PATH

require と load

動作の違い

条件 require load
同じファイルの実行 何度実行しても一度しか実行しない 実行された回数だけ実行する
ファイルの拡張子の省略 自動的に補完する 補完しない
  • require : ライブラリの読み込み
  • load : 設定情報の読み込み

読み込みルール

  • 絶対パスで指定した場合
    • 対照ファイルが存在するかどうかを確認する。
  • 相対パスを指定した場合
    • 組み込み変数 $LOAD_PATH に格納されたパス順で探す。

どちらもファイルが見つからなければ LoadError が発生する。

検索順序

  1. -I オプションで指定したディレクトリ
  2. Ruby のインストールディレクトリ($LOAD_PATH に設定される)
  3. ruby を実行したカレントディレクトリ($LOAD_PATH に設定される)
  4. 環境変数 RUBYLIB に指定したディレクトリ