- ランプの中身(Ruby on Railsのシステム開発)
- ランプの中身(Ruby on Railsのシステム開発)では、株式会社ケイビーエムジェイのRuby on Railsエンジニアが蓄積したノウハウを公開しています。Ruby on Railに関する技術解説や実践的なノウハウなど、開発現場の技術に則したコンテンツを随時追加していきます。 初心者の方でもわかりやすい技術解説を心がけています。リクエスト、ご質問も受け付けいますので、ご気軽にコメントを記述して下さい。
< Rubyのマニュアルを手軽に参照する方法... | メイン | Rubyのソースコードから HTML H... >
-
- 2008.03.26
Rubyのコマンドライン引数と環境変数について(初心者向け)
お久しぶりです!
井上清晃(saronpasu)です。
今回は、ぐぐっと敷居を下げて Rubyビギナー向けの内容でお送りします。
Rubyのコマンドライン引数と環境変数について解説しようと思います。
コマンドライン引数の紹介
構文チェック( -c オプション)
Rubyに慣れないうちはよくお世話になります。
このように実行すると、 hoge.rb内の構文チェックを行い、正常であれば
"Syntax OK"
と返してくれます。
文字コード宣言( -K オプション )
Rubyを実行する際の実行環境の文字コードを宣言します。
-K + 文字コード種類 と記述します。
UTF-8なら 「-Ku」
EUC-JPなら「-Ke」
Shift-JISなら「-Ks」です。
これは、UTF-8で書かれたRubyスクリプトをWindowsで実行する場合には役に立ちます。
デバッグモードで実行( -d オプション )
$DEBUGというグローバル変数をTRUEにします。
これを使う事で、 if $DEBUG then ~~ endとあるような箇所を実行する
デバッグモードで実行してくれます。
引数で実行しちゃう( -e オプション )
引数に書かれたコードをRubyスクリプトとして実行してくれます。
これを使う事で、Rubyでワンライナーが実行できます。
実行するディレクトリを指定( -C オプション )
特定のディレクトリにあるファイルに対して何かを実行する場合に便利です。
この場合、/home/user/document/ ディレクトリに移動してから
hoge.rbを実行します。
例えば、スクリプト内で相対パスにあるファイルを読み書きするような
コードを書いている場合なんかは、このオプションが効果を発揮します。
cronを書くときにもいいかも!
ロードパスを指定して実行( -I オプション )
特定のディレクトリからrequireするように指定できます。
この場合、/home/user/lib/ruby/ ディレクトリが$LOAD_PATHに追加されます。
こうすることで何ができるのかというと、hoge.rbの中で
require 'fuga'
と書かれていた場合に/home/user/lib/ruby/ も参照してくれます。
Rubyのlib/ディレクトリには入れたくはないけど、ライブラリとして他の
ディレクトリを指定したいという場合なんかには便利ですね。
require '/home/user/lib/ruby/fuga'
と書くよりは、
require 'fuga'
と書いた方が断然シンプルで分かり易いですね。
requireしてから実行する( -r オプション)
特定のファイルをrequireしてから実行してくれます。
と実行すると、 kconv.rbをrequireしてからhoge.rbを実行してくれます。
何らかの理由で、hoge.rbにはrequireを書きたくない場合なんかに便利ですね。
意外と知っていそうで使っていないコマンドライン引数についてのお話でした。
続いて、環境変数についても解説しましょう。
環境変数について
デフォルトオプションを設定する( RUBYOPT 変数 )
上記で解説してきたコマンドライン引数を、いちいち入力しなくても
デフォルトで指定してくれるという便利な環境変数です。
Windowsの場合
マイコンピュータを右クリックし、プロパティの環境変数を開きます。
そして、システムの環境変数に以下の変数名、変数値を指定してみましょう。
変数値 「-Ks」
こうする事で、Rubyインタプリタは常に文字コード「Shift-JIS」として実行してくれます。
RUBYOPTには複数の引数が指定できるのでこんな記述もできます。
変数値 「-Ks -rkconv -rubygems」
上記の例では、「文字コードはShift-JIS、kconvとRubyGemsをrequireしてからRubyを実行する」という内容にです。
これで、
と実行するだけで、
と実行しているのと同じことになります。
Linux環境の場合
ちなみに、bash環境の場合は.bashrcにRUBYOPT変数を記述すると良いでしょう。
.bashrc
export RUBYOPT
こんな感じになります。
ロードパスを追加( RUBYLIB 変数 )
標準のlib/以外の場所からもライブラリを探索するように指定できます。
Windowsの場合
環境変数に次のように指定します。
変数値 「C:\mylib\ruby」
こうすることで、標準のlib/以外にC:\mylib\rubyからもライブラリの
探索を行うようになります。
独自に作ったライブラリをC:\mylib\rubyにfuga.rbと置いておくと
require 'fuga'と指定するだけで、C:\mylib\rubyからも参照してくれます。
Linux環境の場合
bash環境の場合は、.bashrcにRUBYLIB変数を記述すると良いでしょう。
.bashrc
export RUBYLIB
おまけ:RubyGemsのパスを指定する( GEM_HOME 変数 )
Ruby標準ではないのですが、Ruby1.9.1では標準搭載になる方向ですし、
Rubyで何かを作る際にはかならずお世話になるので覚えておいて損はありません。
Windwosの場合
環境変数に次のように指定します。
変数値 「C:\ruby\lib\gems\1.8\」
これを指定することで、RubyGemsはC:\ruby\lib\gems\1.8\からGemを
参照してくれます。
Linuxの場合
bash環境の場合は、.bashrcにGEM_HOME変数を記述すると良いでしょう。
.bashrc
export GEM_HOME
Windows環境の場合についてですが、RubyForgeで配布されている
One-Click Installerを使うとGEM_HOME変数も設定してくれるようです。
なので、One-Click Installerを使っている場合は特に必要はありません。
知らなくても不自由はしないけど、知っていると得をする。
今回はそんな豆知識の紹介でした。
トラックバック URL
この記事にコメントする
TOPICS
2008/06/25
「ZD Net Builder」の連載記事です。第四回は「Rubyでどう書く?:重複したRSSをまとめる」が掲載されました。
2008/05/30
「ZD Net Builder」の連載記事です。第三回は「Rubyでどう書く?:Rubyで特定URLの画像パス一覧を表示する」が掲載されました。
2008/05/07
「ZD Net Builder」に連載を始めました。第二回は「Rubyでどう書く?:RubyでPDF履歴書を作成する」が掲載されました。
2008/04/24
「アットマーク・アイティ」に『 Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する』が掲載されました。
RoR最新ブログ一覧
全体のRoR最新ブログ一覧
- Cybozuのスケジュールをmobileme経由でiPhone 3Gに取り込む
- 今週のRuby on Rails最新情報
- Rubyでどう書く?:RubyでWord文書を作成する
- タニタさんの「からだカルテ」を使ってみました
- iPhoneを確保しました
- Edge Railsの最新情報
- Rubyのセキュリティ脆弱性
- mysqlでレコードの中身を一括置換する方法
- 同じappでDBを使い分ける
- Rubyでどう書く?:重複したRSSをまとめる
- TABLEに直接データを入れる便利な方法
- 社内SNSをiPhoneで快適に見るためのCSSを書いてみた
- phpmyadminをセキュアにアクセスする方法
- Rubyプログラムの組み方から、Exeファイルの作成まで
- Ruby、Railsインストール for MacOSX
- will_paginageを使ってみた
- dmgファイルの作り方
- PHP携帯電話の機種情報取得
- Rubyでどう書く?:Rubyで特定URLの画像パス一覧を表示する
- リファラでアクセス制限をしてみた。
- 奇妙な演算子
- RJSを用いて、日付プルダウンメニューを書き換える (2
- railsの実行モードの設定 RAILS_ENV
- postgresでのユーザ権限付与(psql, grant)
- ドロップダウンに簡単にオートコンプリート機能を追加する方法
- Vimの自動補完
- IE6 以前で float に指定した margin が 2 倍になる現象を解消する
- サーバ監視ソフトウェア「ganglia」を使ってみる
- 監視ツールcactiについて
- Rubyでどう書く?:RubyでPDF履歴書を作成する
- グラフを作ってみるか!?
- clearfixでfloat解除
- SELinux無効にしてみる
- Rubyのソースコードから HTML Helpを生成してみよう!
- IEでダイジェスト認証をかけるとエラーになった。
- muninのインストール 〜監視ツールって〜
- Rubyでどう書く?:連続した数列を範囲形式にまとめたい
- RJSを用いて、日付プルダウンメニューを書き換える
- Passenger (mod_rails for apache)での色んな設定値について調べてみた
- docomo の罠
- ローカルで動画変換をする方法
- MacOSにpostgreSQL 8.3をインストール
- Postgres8_3⇔8_1の性能比較してみました
- rake db:migrate すると undefined method `last' for {}:Hash と出る
- ケータイWebサイトに携わっている方へ
- MySQL最大バッファサイズの設定
- railsのand/orを使った機能
- Railsライクなフレームワーク「CakePHP」②
- エラー表示で意図しない改行を解消する−fieldWithErrors、ActionView::Base、field_error_proc
- [mysqlのベンチマーク]MyBenchの設定
- Rubyのコマンドライン引数と環境変数について(初心者向け)
- Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する
- 簡単&便利 Capistranoのススメ (導入編)
- Rails的コメントアウト
- 使えるvalidate一覧
- せっかくなので、Thin を使って実践
- Xenを用いてCentOS上に仮想CentOSを2つインストールする
- aptanaでrailsをデバッグ実行する
- empty?とblank?の違いって?
- ローカルでコマンドを打つとアスタリスクで囲まれたエラーが出る
- rubyの便利ツールirbをカスタマイズしてみた
- 実行モード "environment"設定の基本
- RadRails(Aptana)のショートカット
- JRubyを触ってみた
- mongrelとの戦い〜503エラー?mongrelが死んだってことさ…
- sshでrootログインの禁止
- database.ymlの設定方法
- Railsライクなフレームワーク「CakePHP」①
- Rails導入でRuby標準クラスへ追加される関数達(String編)
- Rubyのマニュアルを手軽に参照する方法
- railsで画像などファイルをアップロードする方法
- 遠隔地のチョロQを操縦する方法 with JavaScript, AJAX, Rails, Gainer, Webカメラ, and USTREAM.TV
- Ruby on Railsで作られたradMineのカスタマイズ1 ~インストール編~
- MacBook AirのレビューとLet's noteとの比較
- Rails プラグイン : CSS Graphsの使い方(そしてちょっとだけ改造)
- Railsの開発でscreenを使う理由
- ActiveRecordのconditionsを綺麗に書くTips2つ
- [Rails 2.0]起動時のファイルの読み込みの順番がわかった!
- RailsのActionMailer(Tmail)でドットの連続などのRFC違反している携帯メールアドレスに対応する
- スパムを消して消して、もう消しまくって こうなりました。
- Ruby on Railsでacts_as_paranoidを使い倒す
- fastladderをrailroadで図を作ってみる。
- [書評] 他言語開発経験者でも、初心者でも、本屋で「チラ見」して確認してみよう
- ヘルパーメソッド
- Ruby標準csv遅い
- Linux2.6系の脆弱性でroot権限奪ってみた
- railsで開発したダイエットサイトとそのソースコード
- fastladderを試してみました ~rails2.0~
- HeartBeatの設定
- Railsの手動インストール
- Railsで「Lost connection to MySQL server during query」に遭遇した場合の対策
- RadiantCMSのインストール(2)
- Linuxとかのbashで使えるショートカットキーをまとめた一覧
- 長い文字列をカットして表示するプログラム
- SLこまんどの設定
- Rails プラグイン : Rails Widgets >Tabnavの使い方
- Scaffoldはどこからくるの? 後編
- ローカルメールサーバーでRailsでのメール受信のテストを便利に
- HTMLエスケープ
- aptanaのインストールと使い方について
- railroadを用いたER図作成
- RailsでAmazon APIを利用する
- ちょっとしたスペルミスなどで、時間を無駄にした経験があるなら ( カラー表示で編集しやすく )
- ちょー入門、Webサーバ構築で知ってて損をしない用語(2)
- Ruby on Rails ってなになに?
- 最近!流行りの、「Ruby」 知ってますか?
- RubyGems って単語よく出てきますよね?
- CentOS5とaptanaを使ったWindows開発環境 1
- gemコマンドの紹介
- ちょー入門、Webサーバ構築で知ってて損をしない用語(1)
- こんな人がこのブログを書いて・・・
- RadiantCMSのインストール(1)
- RubyでActiveRecordを使わないでDBに接続する方法
- Railsのキャッシュ機能を用いて動的ページを静的ページにする方法を紹介
- Rails 2.0のセキュリティ面の変更点
- DRBDのインストール
- Rails プラグイン : ColumnCommentsの使い方
- Scaffoldはどこからくるの? 前編
- RMagickの使い方
- Ruby on Rails インストール for Windows
saronpasuのアーカイブ
プロフィール
- saronpasu
- RubyやRuby on Railsで開発して行く上でのTipsや、トラブルにぶつかった際の解決方法なんかを公開して行きます。



