7
0

More than 3 years have passed since last update.

第5回 :: bash,ruby_first

Last updated at Posted at 2020-12-02

!Mac OS X-10.15.7 !ruby-2.7.1p83$

hello worldの前に

bash + emacs

授業のページに飛びます

puts hello_world

お題

Hello world.

と出力するプログラムを作る.

rubyでStringsを打ち出す方法

どれを使ってもいい.

method 使用状況
print 普通に使う.要改行
puts 次に普通に使う. 自動改行
p codingの最中にdebugがわりに打ち出すとき
pp pのpretty print, require 'pp'が必要
printf cのがあります.formatを整えるときに便利

そのほかにもいくつかあるらしい

Stringはシングルコーテーション'で囲う方法とダブルで囲う方法の二種類がある.シングルは中身をいじらないとき,ダブル"はいじるときにつかう.

詳しい解法

まずはシングルで囲う

puts 'hello world'

を試す.

> mkdir codes
> cd codes
> emacs puts_hello_world.rb

上記のコマンドを入力してディレクトリの作成とファイルの作成.emacsを開いてhello worldのコードを入力.c-x c-sでsaveしたらc-zで一時中断する.

> ruby puts_hello_world.rb

として実行すると

hello world

ちゃんと出力されている.

類題

pとかprintとかも試す.

print 'hello world'
p 'hello world'
pp 'hello world'

pとppは見た目に違いがない…printは改行せずに文字列が出力される.

getsなんだけど,ARGV[0]でやる

お題

> ruby hello_name.rb Rudy

上記のコマンドで実行したときに

Hello Rudy.

と出力されるようにする.

解説

putsしたら普通はgetsだが,目的の一つであるshell環境ではcommand line interfaceで作業をするためにARGV[0]というのを使うらしい.

puts ARGV[0]

とhello_name.rbに入力.

> ruby hello_name.rb Rudy

とコマンドすると…

> Rudy

ARGV[0]というのは引数(argument)配列の0番目を意味している.

次に"Hello Rudy."と打ち出させることを考える.これをするにはいくつか方法がある.(下記参考)

puts puts "Hello " + ARGV[0]
puts puts "Hello #{ARGV[0]}"
print print "Hello #{ARGV[0]}\n"
print print "Hello " + ARGV[0] + "\n"

Cからの人は,printfもありらしい.実際に実行してないけど…

printf("Hello %s.\n", ARGV[0])

解法

hello_name.rbを以下のように書き換える.

puts "Hello #{ARGV[0]}"

そのあとに以下のコマンドで実行

> ruby hello_name.rb Rudy

以下のように出てたらオッケー

hello Ruby

類題

"Hello Rudy"というのをどこかへ保存することを考える.

ruby hello_name.rb bob > hello_name.txt 

とコマンド入力すると,hello_name.txtに出力結果が保存される.

> cat hello_name.txt

で中身をcat(con-cat-inate)できる.

Hello bob

  • source ~/grad_members_20f/members/okamoto0910/article/c5.org
7
0
1

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
7
0