Rubyのプログラムを実行するときにコマンドライン引数を取得する方法を紹介します。
コマンドライン引数
プログラム内のコマンドライン引数は以下の変数に代入されます。
- $0:コマンド名
- ARGV[引数番号]:コマンドに渡した引数名
これらをプログラム中で参照することができます。
コマンドライン引数を参照する
以下のプログラムをsample.rbというファイル名で保存します。
1 2 3 4 |
puts "$0:#{$0}" ARGV.each_with_index do |arg, i| puts "ARGV[#{i}]:#{arg}" end |
上のプログラムは実行したプログラムのファイル名とコマンドライン引数を出力するものです。
以下のコマンドを実行するとファイル名とコマンドライン引数が表示されます。
1 2 3 4 |
$ ruby sample.rb hoge piyo $0:sample.rb ARGV[0]:hoge ARGV[1]:piyo |
コマンドライン引数のファイルを読み込む
以下のプログラムはコマンドライン引数で渡されたファイルを読み込んで表示するプログラムです。
1 2 3 4 5 |
f = open(ARGV[0]) while line = f.gets print line end f.close |
下の例ではコマンドライン引数にプログラムファイル自体を渡しています。
1 2 3 4 5 |
$ ruby sample.rb sample.rb f = open(ARGV[0]) while line = f.gets print line end |