コマンドラインからのデータ入力

コマンドを作ろう!シリーズその1, P.47

ポイント:

  • Unixgrepコマンドもどきを作成しましょう ←ハァ? >「grepコマンドもどき」
  • 今までおこなってきたことはデータを画面に出力することでした。出力があれば入力も試してみたくなるはず
  • そもそも普通に使えるコマンドを作るにはプログラムに動作を指示する方法を知らねばなるまい
  • そこでRubyのプログラムにデータを入力してみるよ
  • その一番簡単な方法として、コマンドラインを利用するのが◎
  • コマンドラインの情報をデータとして受け取るには「ARGV(あーぐぶい と呼ぶ)」という配列オブジェクトを使用します
  • ARGVという配列
  • なお、コマンドラインでスクリプトに引数を指定するときは1つずつスペースで区切って入力すること ←サッパリ >全部

コマンドラインからデータ入力できることでどういう使われ方ができるのか不明。それ以前に日本語理解的な意味で自信をなくす今日この頃。

実行

nrhd, 上のハァ?な部分が少し理解できた。気がする。

puts '最初の引数',  ARGV[0]
puts '2番目の引数', ARGV[1]
puts '3番目の引数', ARGV[2]

print '最初の引数',  ARGV[0]
print '2番目の引数', ARGV[1]
print '3番目の引数', ARGV[2]
  • テキスト通りprint で表示を実行したらこんなことに。へええ
  • コマンド上で引数を指定することで(※)実行した際に1st, 2nd, 3rdがちゃんと入力されている
  • しかしこの引数は改行表示されちゃうんだなあ、きっとputs効果。printだと1行でごちゃっと表示される
moomin:ProgrammingRuby tomomi$ ruby argv.rb 1st 2nd 3rd # ※
最初の引数
1st
2番目の引数
2nd
3番目の引数
3rd
最初の引数1st2番目の引数2nd3番目の引数3rdmoomin:ProgrammingRuby tomomi$ 

実行2

Hello, World!, Ruby! と表示したい

name = ARGV[0]
puts 'Hello, World!,', name, '!\n'
 

改行がうまくいかん

moomin:ProgrammingRuby tomomi$ ruby argv.rb Ruby
Hello, World!,
Ruby
!