Ruby Command list

Rubyは、日本人 まつもとゆきひろ氏の開発で
作られた、オブジェクト指向スクリプト言語
ワンライナーでもインタラクティブモードでも
ソースファイル起動でも可能である。
インタプリタ言語であり、記述後のコンパイルが不要
perl の後継として活用されている他多数の可能性がある。

Ruby command


起動

ワンライナー
> ruby -e 'puts "Hello, World."' 
Hello, World.

Ruby command

インターラクティブモード
$ irb
irb(main):001:0> 1+2
1+2
=> 3
irb(main):002:0> p "Hello"
p "Hello"
"Hello"
=> "Hello"
irb(mainw):003:0> quit

Ruby command

ソースファイル起動
Rubyで書かれたソースファイルを、ruby.rb とする。
$ ruby ruby.rb  ソースファイル起動
$ ruby -c ruby.rb  ソースファイルをチェック
$ ruby -d ruby.rb  ソースファイルをデバッグ

Ruby command

プログラムファイル
  以下の行(1行目)を最初に記入すれば、プログラムとして
直接実行できる。
prog.rb とし、その内容は


#!/bin/ruby <==必要な行
## コメント行
p "Hello,World!" <=ここからプログラムを書く

emacs なら Esc ! ruby -c prog.rbで
文法チェック
Syntax OK
で文法上問題なし

bash-3.2$ ./prog.rb 実行してみる
./prog.rb
bash: ./prog.rb: Permission denie エラー permisson に実行権限がない
bash-3.2$ chmod 755 prog.rb permisson 755に変更
chmod 755 prog.rb
bash-3.2$ ./prog.rb 実行してみる。
./prog.rb 
bash: ./prog.rb: /bin/ruby: bad interpreter: No such file or directory
エラーが出た。これは、prog.rb 一行目のruby のディレクトリが違うからだ
bash-3.2$ which ruby whichでrubyがどこのディレクトリに保存されているか確認

which ruby
/usr/bin/ruby ここに保存されているので
一行目 #!/bin/ruby を #!/usr/bin/ruby に変更する。
変更後、再びチェックをする。
bash-3.2$ ruby -c prog.rb
ruby -c prog.rb
Syntax OK
いよいよ実行してみる(3回目)
 
bash-3.2$ ./prog.rb
./prog.rb
"Hello,World!"
やっとできた。
完成したプログラムは

cat -n prog.rb
1 #!/usr/bin/ruby
2 # coding: utf-8
3 ## コメント行
4 p "Hello,World!"
5
2行目は、rubyが勝手に追記した。


Ruby command
print

print << E O F
<< と E O F の間はスペースを入れない
printcomment
変数展開は#{hen}
EOF ##ここまで

printf sprintf '' " " puts p 四則演算 数値 変数

コメント
行の途中からのコメントは作れない
#  行の頭に#をつけるとその行はコメント行となる
複数のコメントには
=begin
コメントの複数行
   は
     =beginと=endで囲む
  何行でもok
データの変更履歴なども書き込む
=end

if for while until each loop times メソッド クラス モジュール

require
取り込むファイルが、同じフォルダにある
hello.rb を取り込む場合
require_relative './hello.rb'
のように、使う
標準ライブラリ 例えば cgi などは
  require "cgi-lib"
input = CGI.new
require "date"
day = Date.today
など記す


配列 ハッシュ 正規表現 ファイル操作 フィルタ エラー 文字列 ヒアドキュメント IO dir 時間日時 ruby -h

$ ruby -h
Usage: ruby [switches] [--] [programfile] [arguments]
-0[octal] specify record separator (\0, if no argument)
-a autosplit mode with -n or -p (splits $_ into $F)
-c check syntax only
-Cdirectory cd to directory before executing your script
-d set debugging flags (set $DEBUG to true)
-e 'command' one line of script. Several -es allowed. Omit [programfile]
-Eex[:in] specify the default external and internal character encodings
-i[extension] edit ARGV files in place (make backup if extension supplied)
-Idirectory specify $LOAD_PATH directory (may be used more than once)
-l enable line ending processing
-n assume 'while gets(); ... end' loop around your script
-p assume loop like -n but print line also like sed
-rlibrary require the library before executing your script
-s enable some switch parsing for switches after script name
-S look for the script using PATH environment variable
-T[level=1] turn on tainting checks
-v print version number, then turn on verbose mode
-w turn warnings on for your script
-W[level=2] set warning level; 0=silence, 1=medium, 2=verbose
-x[directory] strip off text before #!ruby line and perhaps cd to directory
-h show this message, --help for more info




ruby -v $ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
$


Ruby command

起動 ワンライナー インタラクティブ プログラムファイル コメント



home