なんらかの入力に対して加工を施し,結果を出力する。形こそ違え ソフトウェアは原則としてそのような動きを持つ。Rubyで作成する コンソールプログラムでの入出力の方法をまとめる。
Rubyプログラム起動時に,そのプログラム名の後ろに指定された文字列は
単語ごとに区切られた配列として変数 ARGV
に入る。
./program.rb a "b c" d\ ef ghi
としたときのARGVは
ARGV[0] | ARGV[1] |
ARGV[2] | ARGV[3] |
---|---|---|---|
"a" | "b c" |
"d ef" | "ghi" |
となる。コマンドラインに指定した文字列の単語分解は シェルが規則に基づいて行なっている。
Rubyの場合はコマンドライン引数の個々をファイル名と見なし,
そのファイルの中味全体を結合したファイル入力を自動的に利用することができる。
これは変数
ARGF
を介して利用する。コマンドライン引数が何もない場合の
ARGF
は標準入力を指すオブジェクトとなる。
gets
メソッドを単体で使用することは
ARGF
からの読み込みを意味する。つまり,
while line=gets ... end
は,
while line=ARGF.gets ... end
と同じである。