起動オプション "-s"
マニュアル(http://www.ruby-lang.org/ja/man/html/Ruby_A4CEB5AFC6B0.html)には、
-s スクリプト名に続く, `-'で始まる引数を解釈して, 同名のグローバル変数に値を設定します。 `--'なる引数以降は解 釈を行ないません。該当する引数は ARGV から取り除かれます。 例: #! /usr/local/bin/ruby -s # prints "true" if invoked with `-xyz' switch. print "true\n" if $xyz
とあるが、この説明じゃイマイチよくわからん。
実際には、こうすればいいようだ
> ruby -s test.rb -xyz=hoge
これでグローバル変数 $xyz に "hoge" という文字列がセットされる。
これを利用して、スクリプトが起動された時の時刻をセットすることもできる(以下の例はWindows用)
> ruby -s test.rb -time_str="%date% %time%"
test.rb の中身はこんなカンジ
require 'time' t = Time.parse($time_str)