LoginSignup
2
3

More than 5 years have passed since last update.

Rubyのインストール〜Hello Worldまで(CentOS5)

Last updated at Posted at 2014-01-26

この記事の概要

Rubyやってみたいと思いつつ、全然手をつけられていなかったので、いい加減やろうかと。
そもそもRubyってどんな言語なの?というところでこちらより引用させていただきました。

1993年にまつもとゆきひろ氏が開発したオブジェクト指向のスクリプト言語。テキスト処理能力に優れており、Perlからの乗り換えユーザーが多い。はじめからオブジェクト指向言語として開発されているため、データ構造はすべてオブジェクトとして扱われ、オブジェクトに対するインターフェースが統一されているなどの特徴を持つ。UNIX、Linux、Windows、Mac OSといった、主要なOSで利用できる

オブジェクト指向言語なんですねーいいですね。
早速開発環境に入れてみようと思います。
環境はCentOS5系です。

Rubyのインストール

バージョンによっては他ツール(Redmine等)を導入する際にうまく動かなかったりするらしい。
ので、ここではyumでなくソースからインストールしてみます。

$ cd /usr/local/src
$ sudo wget http://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
$ sudo tar zxvf ruby-1.9.3-p448.tar.gz 
$ cd ruby-1.9.3-p448
$ sudo ./configure
$ sudo make
$ sudo make install

$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]

入りました。

コマンドラインの実行

-eオプションを使用します。
-eオプションについてはこちらに記載がありました。

コマンドラインからスクリプトを指定します。-eオ プションを付けた時には引数からスクリプトファイル名を取りません。

-e オプションを複数指定した場合、各スクリプトの間に改行を 挟んで解釈します。

とのこと。
とりあえず試してみます。

$ ruby -e 'print "Hello World\n"'
Hello World

こんな風に改行しながらの入力もできました。

$ ruby -e 'print"
test
"'

test

ファイルの作成・実行

続いてファイルに記述してみます。

$ vim first.rb
$ cat first.rb 
#!/usr/local/bin/ruby

print "Hello World\n"

$ chmod 755 first.rb 

$ ./first.rb 
Hello World

メソッドの定義・実行

では、メソッドはどう書くのか?
「def」で定義できるようです。

$ vim func.rb
$ cat func.rb 
def printStr
    print("Hello World\n")
end

printStr

$ ruby func.rb 
Hello World

できた。
もうひと頑張りしてみます。
func.rbを下記のように修正。

#!/usr/local/bin/ruby
def printStr(name)
    msg = "Hello," + name + "\n"
    puts(msg)
end

if ARGV.size != 1
    print "ex) $ ruby func.rb hoge\n"
    exit
else
    name = ARGV[0]
end

printStr(name)

権限変更 & 実行

$ chmod 755 func.rb 

$ ./func.rb Test
Hello,Test

$ ./func.rb 
ex) $ ruby func.rb hoge

クラスの定義・実行

ここまできたらクラスも書いてみたくなりました。
・インスタンス生成は「クラス名.new(引数)」のように記述する
・コンストラクタは「initialize」

上記踏まえ、func.rbを下記のように修正。

#!/usr/local/bin/ruby

class Func
    def initialize(name)
        @name = name
    end

    def printStr()
        msg = "Hello," + @name + "\n"
        puts(msg)
    end
end

if ARGV.size != 1
    print "ex) $ ruby func.rb hoge\n"
    exit
else
    name = ARGV[0]
end

func = Func.new(name)
func.printStr()

実行

$ ./func.rb Test
Hello,Test

できました。
本記事で作成したソースコードはgithubにも上げてあります。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3