入力値をー8から8まで1ずつ増やしていき、各々の値に対してそのプログラムを走らせる必要があったのだが、rubyで自動化するのに少し手間取った。
これまでは、perlを用いて下のようにしていた。
#!/usr/bin/perl
for($i=-8; $i<=8; $i++){
system("echo $i | 実行プログラム");
}
これをrubyで行おうとして、はじめは次のように書いた。
#!/usr/bin/ruby
for i in -8..8
system("echo i | 実行ファイル");
end
ところが、rubyではrubyスクリプト内で用いられているiは""の中では展開されない。
perlでは数値として扱われるところがrubyとperlにおける違いの一つのようだ。
そこで、式展開 #{}を用いて以下のように修正する。
#!/usr/bin/ruby
for i in -8..8
system("echo #{i} | 実行ファイル");
end
これで期待どおりに動いた。