*目次 [#j3bdc635] #contents *外部コマンドの実行 [#b53f154a] -[[Rubyで外部コマンドを実行して結果を受け取る方法あれこれ - Qiita:http://qiita.com/tyabe/items/56c9fa81ca89088c5627]] -通常バッククォートで囲んで実行かsystemで事足りる。 *スクリプトの情報[#r7c57500] **実行中のスクリプトのパス [#t9de67f1] __FILE__で参照できる。 #pre{{ p __FILE__ }} d:\tempにtest.rbとして保存して実行。 #pre{{ D:\temp>ruby test.rb "test.rb" }} **実行中スクリプトの絶対パス [#b569caf5] File.expand_path(__FILE__)で相対パスを展開すればフルパスが得られる。 #pre{{ p File.expand_path(__FILE__) }} test.rbがフルパスに変換される。 #pre{{ D:\temp>ruby test.rb "D:/temp/test.rb" }} **実行中スクリプトのディレクトリ [#i46f039f] File.expand_path(__FILE__)した後File.dirnameでディレクトリ名を取得する #pre{{ p File.dirname(File.expand_path(__FILE__)) }} 実行。 #pre{{ D:\temp>ruby test.rb "D:/temp" }} *スクリプトの起動 [#n05fff15] **ライブラリと起動可能スクリプトを兼用する [#o4fee885] "__FILE == $0"という条件を使って、ライブラリのrbを実行させることも可能。次のようにクラスをためしに実行してみたいときに使える。 #pre{{ class Foo def hello p "hello" end end if __FILE__ == $0 foo = Foo.new foo.hello end }}