「Ruby」参考情報 第6回 Rubyの標準入力と標準出力として、「(1)標準入力」「(2)標準出力」について紹介。

「Ruby」参考情報 第6回 Rubyの標準入力と標準出力

「Ruby」参考情報 第6回 Rubyの標準入力と標準出力として、「(1)標準入力」「(2)標準出力」について紹介。

■関連する比較ページ

(1)標準入力

■標準入力「STDIN」

使用例

標準入力「STDIN」からデータを受け取るには「gets」を使用します。

gets」は標準入力から行単位で読み込みます。行末の改行文字を取り除きません。

サンプルコード

#標準入力取得ループ
while str = STDIN.gets
  #改行コードを除去した文字列が"exit"の場合ループ終了
  break if str.chomp == "exit"
  #取得した標準入力文字列を出力
  #「{str}」で変数の内容を出力します
  puts "input text:{str}"
end

結果

dog #キーボード入力
input text:dog
cat #キーボード入力
input text:cat
exit #キーボード入力

■コマンドライン引数

変数「ARGV」にはコマンドラインで指定された引数が配列としてセットされています。

サンプルコード(argb_test.rb)

#コマンドライン引数1番目を出力
puts ARGV[0]
#コマンドライン引数2番目を出力
puts ARGV[1]
#コマンドライン引数3番目を出力
puts ARGV[2]

結果

argb_test.rb dog cat rabbit #キーボード入力
dog
cat
rabbit

(2)標準出力

■標準出力「STDOUT」と標準エラー「STDERR」

2種類に分けて出力させることができます。チェック用、デバッグ用などの用途に分けて出力できます。

サンプルコード(test.rb)

#標準出力
STDOUT.puts "標準出力STDOUT"
#標準エラー
STDERR.puts "標準エラーSTDERR"

(結果1)リダイレクトなしの場合

どちらも出力されます。

test.rb #キーボード入力
標準出力STDOUT
標準エラーSTDERR

(結果2)標準出力をリダイレクト

「test.rb 1>out.log」と実行すると、標準出力をログファイルに書き出すことができます。

「1」は標準出力を表します。省略も可能です。

test.rb 1>out.log #キーボード入力
標準エラーSTDERR ←標準エラーはコンソールへ

※out.logの中に、「標準出力STDOUT」が出力されます。

(結果3)標準エラーをリダイレクト

「test.rb 2>err.log」と実行すると、エラー出力をログファイルに書き出すことができます。「2」はエラー出力を表します。

省略は不可です。

test.rb 2>err.log #キーボード入力
標準出力STDOUT ←標準出力はコンソールへ

※err.logの中に、「標準エラーSTDERR」が出力されます。

■「print」と「puts」と「p」

3つとも出力を行いますが、微妙に異なります。

サンプルコード

#print
print("Hello Ruby World ")
print(12345)
#puts
puts("Hello Ruby World ")
puts(12345)
#p
p("Hello Ruby World ")
p(12345)

結果(print)

Hello Ruby World 12345
※「print」は改行されません

結果(puts)

Hello Ruby World
12345

※「puts」は改行されます

結果(p)

Hello Ruby World
12345

※「p」は、文字列が「"」で囲まれます。主にデバッグ用に使われます。

Ruby最新TOPICS

【講演資料を公開】3/22「スマホアプリの開発プロセスについて~実は重要なサーバーサイドの開発と、Laravel(PHP) と Rails(Ruby)~」(2018年04月27日 10:04)

2018年03月22日(木)17:00~18:30 AP品川 9階 にて「スマホアプリの開発プロセスについて~実は重要なサーバーサイドの開発と、Laravel(PHP) と Rails(Ruby)~」と題したセミナーを開催しました。 当日は、会場の様子をWebで中継し 遠隔地等ご来場出来ない方にもご参加頂きました。お陰様で、盛況のうちに終了することができました。ありがとうございました。 講...

  • Zabbixカンファレンス2019
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter