``に変数を使う

昨日解決しなかった問題が解決しました.t_morita様ありがとうございます!


hello.rbとhoge.rbを同じディレクトリに作成.

# hello.rb
puts "hello"

# hoge.rb
command = "ruby hello.rb"
output = `#{command}`
puts output

実行すると

% ruby hoge.rb 
hello

無理やり変数展開するのには#{}を使うらしい.shやPerlにおける${}のようなもの.


更にグローバル変数の場合,

# hoge.rb
$command = "ruby hello.rb"

output = `#$command`

で同様の挙動をする.
ふむふむ,グローバル変数になるとsigilがつくのか.

まとめ

Rubyはsigilをつけないので,""や``の中で変数展開をするためには,#{}で囲う必要がある.""の場合はこんな感じ.

command = "ruby hello.rb"
puts "#{command}だよ"     # => ruby hello.rbだよ


関係ないけど,はてなダイアリーの色付け機能はきれいだけれど,目がちかちかすることに気がついた今日この頃